在C++中运行时加载函数

leo*_*n22 1 c++ loadlibrary dynamic-binding

我有以下问题:

我的程序应该在运行时决定加载一个函数(在本例中是GetExtendedTcpTable()),因为该方法在Windows 2000中不可用!(无法仅在Windows 2000中启动软件)

谢谢您的帮助!

招呼leon22

Sas*_*ein 6

您没有完全指定您的问题,但我想您希望根据操作系统版本动态加载该功能.

要确定操作系统版本,您可以使用GetVersionEx.要动态加载函数,首先使用它LoadLibrary来检索其DLL的模块句柄,然后使用它GetProcAddress来检索函数的函数指针.您需要将该函数指针强制转换为正确的原型.

  • 我会省略GetVersionEx检查.只需使用LoadLibrary和GetProcAddress.如果函数在那里,使用它(如果它不在那里,不要使用它:-)).如果您使用GetVersionEx,如果Service Pack决定之后添加该函数,则会遇到问题. (4认同)