1

我一直在找一些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)); 
  }

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

4

1 回答 1

4

您的代码可能是特定于 Windows 的,应该这样标记。Posix 系统将具有dlopen.

C++ 函数名称经常被修改,您可能需要将修改后的名称传递给GetProcAddress(或dlsym在 Unix 或 Linux 上)。

名称修改约定是特定于编译器和系统的。

于 2012-05-07T08:14:38.943 回答