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マングルされた名前を に(またはdlsymUnix や Linux では に)渡す必要がある可能性があります。

名前マングリング規則は、コンパイラおよびシステム固有です。

于 2012-05-07T08:14:38.943 に答える