我正在寻找一些dll或类来获取客户端的硬件信息,最后找到了它:
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));
}
如果有人能为我做到这一点,我很高兴,但做了一些研究却仍然找不到答案。
最佳答案
您的代码可能是Windows特有的,应这样标记。 Posix系统将具有dlopen
。
C++函数名称通常为mangled,您可能需要将整齐的名称传递给GetProcAddress
(或在Unix或Linux上传递给dlsym
)。
名称处理约定是特定于编译器和系统的。
关于c++ - C++:关于加载DLL和调用函数的小事,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10478745/