我应该使用GetProcAddress还是只包含各种win32库?

Zom*_*ies 2 c c++ winapi

想知道之间有什么区别:

static PROCESSWALK pProcess32First=(PROCESSWALK)GetProcAddress(hKernel,"Process32First");
...
pProcess32First(...);
Run Code Online (Sandbox Code Playgroud)

什么是hKernel?看看在这里.你可以替换GetModuleHandle()

#include <Tlhelp32.h>
...
Process32First(...);
Run Code Online (Sandbox Code Playgroud)

有什么区别,我想知道应该使用哪些.那么最佳实践方面有什么不同吗?

Eva*_*ran 7

注意:我的回答假设该功能可用,无论是否在非导出功能之后还有其他事项需要考虑.

如果使用LoadLibrary和GetProcAddress,则如果不存在所需的库,则可以选择以减少的功能运行该选项.如果您使用include并直接链接lib,并且dll不存在(或由于错误的版本没有导出),您的应用程序将无法加载.

如果你想使用一个不在给定dll的所有版本中的函数,它真的只会有所不同.