C ++:关于加载DLL和调用函数的一件小事

我正在寻找一些DLL或类来获取客户端的硬件信息,并最终find它: http : //www.soft.tahionic.com/download-hdd_id/index.html

任何人都可以告诉我如何做到这一点,以调用该函数? 我在C中使用这个代码,它的工作原理。 现在我无法将其转换为C ++。

char* (__stdcall *GetIDESerialNumber)(BYTE); HINSTANCE DllInst = NULL; if (DllInst == NULL) DllInst = LoadLibrary("hardwareid.dll"); if (DllInst) { GetIDESerialNumber = (char* (__stdcall*)(BYTE))GetProcAddress(DllInst, "GetIDESerialNumber"); printf(GetIDESerialNumber(0)); } 

我会很高兴,如果有人能为我做这个,做了一些研究,但仍然没有find答案。

你的代码可能是特定于Windows的,应该这样标记。 Posix系统会有dlopen

C ++函数名称通常会被破坏 ,您可能需要将损坏的名称传递给GetProcAddress (或在Unix或Linux上的dlsym )。

名称约束是编译器和系统特定的。