• ベストアンサー

C++ の LNK2001エラー

「sample.obj : error LNK2001: 外部シンボル ""void * __cdecl SetupDiGetClassDevsW(struct _GUID *,wchar_t const *,struct HWND__ *,unsigned long)" (?SetupDiGetClassDevsW@@$$FYAPAXPAU_GUID@@PB_WPAUHWND__@@K@Z)" は未解決です。」というエラーメッセージが出ます。  ソース中に extern "C" { #include "hidsdi.h" #include <setupapi.h> } #pragma comment(lib, "setupapi.lib") #pragma comment(lib, "hid.lib")  の記述をしています。  Visual C++ 2005 Express Edition で [プロジェクト] -> [プロパティ] -> [構成プロパティ] -> [リンカ] -> [追加のライブラリ] のところにディレクトリ設定も行っています。  どのようにしたら解決できるのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

SetupDiGetClassDevs のプロトタイプ宣言は #include <setupapi.h> にあるものを使っていますか? それとも自前で HDEVINFO SetupDiGetClassDevs( LPGUID ClassGuid, ...); と書いていますか? 後者ならその現象の説明がつきますが。

tonotono_5
質問者

お礼

 自前で書いていました。 削除したらエラーがなくなりました。ありがとうございました。  エラーではないのですが、下記のようなワーニングがでました。 sample.obj : warning LNK4248: 未解決の typeref トークン (01000010) ('_HIDP_PREPARSED_DATA') です。イメージを実行できません。 PHIDP_PREPARSED_DATA PreparsedData; HidD_GetPreparsedData (hDevHandle, &PreparsedData); HidP_GetCaps (PreparsedData, &Capabilities);

その他の回答 (3)

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.4

WDKは入ってます? Standard Edition使ってますが、別途入れないと無い…ですね。

参考URL:
http://labs.gmo.jp/blog/ku/2007/01/widowswdk.html
tonotono_5
質問者

お礼

ご回答ありがとうございます。 WDKは(以前のDDKは入っています)入っていなかったので 入れてみましたが、ワーニングの結果は一緒でした。  これから色々試してみます。

回答No.3

> またPC内を検索してみましたが「Hidparse.h」はありませんでした。 > どこからか入手する必要があるのでしょうか。 正直面倒みてられんです。 MSDNを読んでください。

tonotono_5
質問者

お礼

すみません、ありがとうございました。

回答No.2

> エラーではないのですが、下記のようなワーニングがでました。 > sample.obj : warning LNK4248: 未解決の typeref トークン (01000010) ('_HIDP_PREPARSED_DATA') です。イメージを実行できません。 型 _HIDP_PREPARSED_DATA が明らかじゃないんでしょうね。 Hidparse.hを#includeしていないとか。

tonotono_5
質問者

お礼

ご回答、ありがとうございます。 確かにDDKをインストールしたフォルダ内には、全*.hを検索してみましたが、”型 _HIDP_PREPARSED_DATA ”を定義しているようなところは見つかりませんでした。 またPC内を検索してみましたが「Hidparse.h」はありませんでした。 どこからか入手する必要があるのでしょうか。

関連するQ&A