想知道有什么区别:
static PROCESSWALK pProcess32First=(PROCESSWALK)GetProcAddress(hKernel,"Process32First");
...
pProcess32First(...);
什么是hKernel?找here .您可以替换为 GetModuleHandle()
和
#include <Tlhelp32.h>
...
Process32First(...);
有什么区别,我想知道我应该使用哪个。那么在最佳实践方面有什么不同吗?
最佳答案
注意:我的回答假设该函数以任何一种方式都可用,如果您使用非导出函数,还需要考虑其他事项。
如果您使用 LoadLibrary 和 GetProcAddress,那么如果所需的库不存在,您可以选择以缩减的功能运行。如果您使用包含并直接链接库,并且 dll 不存在(或由于版本错误而没有导出),您的应用将无法加载。
只有当您想要使用某个给定 dll 的所有版本中都没有的函数时,它才会有所不同。
关于c++ - 我应该使用 GetProcAddress 还是只包含各种 win32 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/493447/