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

时间:2011-03-07 10:08:22

标签: c++ loadlibrary dynamic-binding

我有以下问题:

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

感谢您的帮助!

迎接leon22

2 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:-1)

如果该功能在特定平台上不可用,您希望在编译时确定是否在运行时加载它。在构建的配置期间,您可以确定该函数是否可用并进行适当编译。