我正在寻找一些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/

10-09 03:45