1

firefox 拡張機能でいくつかの SetupAPI 関数を使用する必要があります。デバイスのフレンドリ名を取得する必要があります。SetupDiGetClassDevsSetupDiEnumDeviceInfo、でできると思いましSetupDiGetDeviceRegistryPropertySetupDiDestroyDeviceInfoList

しかし!3 つの関数をインポートしsetupapi.dllて宣言しましたが、問題ありません。SetupDiGetDeviceRegistryProperty次に、DLL にまったく含まれておらず、静的にのみリンクできることがわかりましたsetupapi.lib。この関数を代用する方法はありますか?

WMI を使用できません。

4

2 に答える 2

1

Dependency Walker を使用して確認したように、この関数は確かに SetupAPI.DLL にあります。A文字ポインタ (文字列) を取り、ANSI ( ) 用と Unicode ( )用の 2 つのバリアントが必要Wです。

  • SetupDiGetDeviceRegistryPropertyA
  • SetupDiGetDeviceRegistryPropertyW

任意の Windows API 関数を使用します。関数が 1 つ以上の文字列を引数として取る場合、2 つのバリアントがあります。

おそらくGetProcAddressそれを見つけるために使用しているようです。したがって、実際の名前 (マクロではない) を渡す必要があります。以下は、この関数の幅広いバリアントを取得します。

GetProcAddress(handleOfDLL, "SetupDiGetDeviceRegistryPropertyW"); // Wide
于 2016-05-25T07:36:29.283 に答える