• ベストアンサー

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% (2177/4070)
回答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

  • Visual C++,OpenCVでのリンクエラー

    こんにちは。 現在、Microsoft Visual C++ 2010 の環境で、OpenCV(ver2.3.1)を用いて、画像認識のアプリケーションを作ろうと考えています。ただ、Visual C++ 、OpenCV共に扱うのが初めてで、openCVのライブラリーをC++に認識させることができていません。 具体的には、下記の様なエラーが出ます。 「 Sample.obj : error LNK2019: 未解決の外部シンボル _cvReleaseImage が関数 _wmain で参照されました。 (同様に、以下の外部シンボルも参照できていません。_cvDestroyAllWindows、_cvWaitKey、_cvShowImage、_cvSmooth、_cvCreateImage、_cvGetSize、_cvNamedWindow、_cvLoadImage) 」 リンクの設定が上手くできていないと考え、 プロジェクト > ○○のプロパティ > 構成プロパティ > リンカー > 全般 > 追加ライブラリディレクトリ に、C:\opencv\build\x64\vc10\lib というように記入し(64bit環境です)、また、 プロジェクト > ○○のプロパティ > 構成プロパティ > リンカー > 入力 > 追加依存ファイル に、opencv_core231d.lib;opencv_imgproc231d.lib;opencv_highgui231d.lib;opencv_objdetect231d.lib;opencv_contrib231d.lib;opencv_features2d231d.lib;opencv_flann231d.lib;opencv_gpu231d.lib;opencv_haartraining_engined.lib;opencv_legacy231d.lib;opencv_ts231d.lib;opencv_video231d.lib を追加しております。 実行しているサンプルファイルは下記になります。 -------------------- // Sample.cpp : コンソール アプリケーションのエントリ ポイントを定義します。 // #include "stdafx.h" //プロジェクトのプロパティ⇒C/C++⇒全般 の追加のインクルードディレクトリに // 『C:\OpenCV2.3\include』を追加のこと #include "opencv2\\opencv.hpp" #ifdef _DEBUG //Debugモードの場合 #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_core231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_imgproc231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_highgui231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_objdetect231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_contrib231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_features2d231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_flann231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_gpu231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_haartraining_engined.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_legacy231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_ts231d.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_video231d.lib") #else //Releaseモードの場合 #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_core231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_imgproc231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_highgui231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_objdetect231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_contrib231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_features2d231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_flann231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_gpu231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_haartraining_engined.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_legacy231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_ts231.lib") #pragma comment(lib,"C:\\opencv\\build\\x64\\vc10\\lib\\opencv_video231.lib") #endif int _tmain(int argc, _TCHAR* argv[]) { //画像データの読込 IplImage* src_img = cvLoadImage("C:\\opencv\\samples\\c\\lena.jpg", CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR); if (src_img == NULL){ return 0; } //表示ウィンドウの作成 cvNamedWindow("src"); cvNamedWindow("dst"); //処理後画像データの確保 IplImage* dst_img = cvCreateImage(cvGetSize(src_img), src_img->depth, src_img->nChannels); //画像処理例(ガウシアンフィルタ) cvSmooth(src_img, dst_img, CV_GAUSSIAN, 9); //画像の表示 cvShowImage ("src", src_img); cvShowImage ("dst", dst_img); //キー入力待ち cvWaitKey (0); //全てのウィンドウの削除 cvDestroyAllWindows(); //画像データの解放 cvReleaseImage(&src_img); cvReleaseImage(&dst_img); return 0; } --------------- 初心者な質問で大変恐縮ながら、どこを修正すればよいかお分かりでしたら、お教え頂けませんでしょうか?何卒宜しくお願いします。

  • エラー lnk2019について

    現在C++でゲームの開発を行っています。 VC++でビルドしたところ以下のようなエラーが出ました。 error LNK2019: 未解決の外部シンボル _Direct3DRMCreate@4 が関数 "int __cdecl CreateObjects(struct HWND__ *)" (?CreateObjects@@YAHPAUHWND__@@@Z) で参照されました。 自分なりに調べたところリンクが出来ていないようなのですが、リンクするファイルはd3drm.libでよろしいのでしょうか? もしリンクするファイルがd3drm.libの場合、d3drm.libはどこでダウンロードすることができますか? ご教授よろしくお願いします。

  • OpenCVの実行エラー

    OpenCVで下記の用なテストプログラムを作成しました。 --------------------------------------- #include <stdio.h> #include <cv.h> #include <cxcore.h> #include <highgui.h> #pragma comment(lib, "cv.lib") #pragma comment(lib, "cxcore.lib") #pragma comment(lib, "highgui.lib") int main(void) { unsigned char *Image; IplImage* img = NULL; IplImage* clone = NULL; // 画像読み込み img = cvLoadImage("image.bmp", -1); // 画像コピー clone = cvCloneImage(img); return 0; } --------------------------------------- ところが、実行すると --------------------------------------- Bad argument(Bad image header) in function cvCloneImage, D:\User\VP\openCV\cxcore\src\cxarray.cpp --------------------------------------- というエラーメッセージがでて実行することができませんでした。 OpenCVに付属していたsampleプログラムは動作しました。 // 画像コピー clone = cvCloneImage(img); の一文をコメントアウトするとエラーはなぜかでません。 このエラーはどうしてでるのでしょうか? OSはwindowsXP コンパイルはC++6.0とVS2005の両方で試しましたが同じ結果がでます。

  • wsprintfのエラーについて

    Visual C++を使ってC++,Win32APIでプログラムしています。 ウィンドウ上に変数の値を表示したいのですが、うまくできません。 wsprintfを使うと以下のようなエラーがでてしまいます。 1>time.obj : error LNK2020: 未解決のトークン (0A000015) "extern "C" int __cdecl wsprintfW(wchar_t *,wchar_t const *,...)" (?wsprintfW@@$$J0YAHPA_WPB_WZZ) 1>time.obj : error LNK2020: 未解決のトークン (0A000016) "extern "C" int __cdecl wsprintfW(wchar_t *,wchar_t const *,...)" (?wsprintfW@@$$J0YAHPA_WPB_WZZ) 1>time.obj : error LNK2001: 外部シンボル ""extern "C" int __cdecl wsprintfW(wchar_t *,wchar_t const *,...)" (?wsprintfW@@$$J0YAHPA_WPB_WZZ)" は未解決です。 1>C:\Documents and Settings\home\My Documents\Visual Studio 2005\Projects\time\Debug\time.exe : fatal error LNK1120: 外部参照 3 が未解決です。 どのようにすればよいのでしょうか?または、他のやり方があるのでしょうか? お願いします。

  • ビルド時にinet_ptonが見つからないエラー

    IPv6対応でinet_ptonを利用したのですが、下記ビルド時にエラーが発生します。 error C4013: 'inet_pton' undefined; assuming extern returning int 調べた結果下記のヘッダファイルとライブラリーを読みこめばいいという 記載を見かけて、追加したのですが、それでも同様のエラーが発生します。 (下記に関するエラーはなかったので、"ws2_32.lib" に対してはリンクが通っていると思います。) #include <Ws2tcpip.h> #pragma comment( lib, "ws2_32.lib" ) ご教示のほどよろしくおねがいします。 環境: Windows7 64bit WDK7.1

  • CPLEX をCから使う方法について(環境設定)

    自分の環境 Microsoft Visual Studio 2010 Version 10.0.30319.1 RTMRel Microsoft .NET Framework Version 4.0.30319 RTMRel インストールされているバージョン: VC Express http://www.fl.ctrl.titech.ac.jp/paper/2004/Thesis/B_taka.pdf#search='CPXopenCPLEX()' 上記のサイトを見ながらCPLEXをCから呼び出してLP問題を解きたいのですが最初の環境設定のところでつまずいてしまいました。 プロジェクト→プロパティ→構成プロパティ→C/C++→追加のインクルードディレクトリ C:\ILOG\CPLEX_Studio_AcademicResearch122\cplex\include\ilcplex←cplex.hのある場所を指定 プロジェクト→プロパティ→構成プロパティ→リンカ→追加の依存ファイル→cplex122.libを指定 自分で一応このような設定はしました、しかしpathの指定の方法などがわかりません。 下記のように骨組みだけ組んでみたのですがエラーが起きてしまいます。 #include <cplex.h> #include <stdlib.h> #include <string.h> #include <stdio.h> int main () { CPXENVptr env=NULL; int status=0; env = CPXopenCPLEX(&status); } エラー 2 error LNK2028: 未解決のトークン (0A00001E) "extern "C" struct cpxenv * __stdcall CPXopenCPLEX(int *)" (?CPXopenCPLEX@@$$J14YGPAUcpxenv@@PAH@Z) が関数 "int __cdecl main(void)" (?main@@$$HYAHXZ) で参照されました。 c:\Users\msysstu16-1\documents\visual studio 2010\Projects\cplexcc\cplexcc\cplexc.obj エラー 3 error LNK2019: 未解決の外部シンボル "extern "C" struct cpxenv * __stdcall CPXopenCPLEX(int *)" (?CPXopenCPLEX@@$$J14YGPAUcpxenv@@PAH@Z) が関数 "int __cdecl main(void)" (?main@@$$HYAHXZ) で参照されました。 c:\Users\msysstu16-1\documents\visual studio 2010\Projects\cplexcc\cplexcc\cplexc.obj エラー 4 error LNK1120: 外部参照 2 が未解決です。 c:\users\msysstu16-1\documents\visual studio 2010\Projects\cplexcc\Debug\cplexcc.exe 1 今現在どのような問題が考えられるのか、また、どのような調査を行うべきか、ご教示頂きたいです。 よろしくお願い致します。

  • 'stdafx.h'のエラーに関して

    http://tetlist.info/2011/01/17/fftw-%E3%82%92-visual-studio-2010-%E7%92%B0%E5%A2%83%E4%B8%8B%E3%81%A7%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B 上記のサイトにある下記のプログラムを実行した場合、fatal error C1083: include ファイルを開けません。'stdafx.h': No such file or directory というエラーが出ました。 間違いがわからずに困っています。もし解決方法がわかる方がいましたら教えていただけないでしょうか?よろしくおねがいいたします。 #include "stdafx.h" #include #pragma comment(lib, "libfftw3-3.lib") #pragma comment(lib, "libfftw3f-3.lib") #pragma comment(lib, "libfftw3l-3.lib") #define _USE_MATH_DEFINES #include int main(int argc, char* argv[]) { const int kSamples = 16; fftw_complex *in = reinterpret_cast(fftw_malloc(sizeof(fftw_complex) * kSamples)); fftw_complex *out = reinterpret_cast(fftw_malloc(sizeof(fftw_complex) * kSamples)); for (int t = 0; t < kSamples; t++ ) { in[t][0] = sin(2.0 * M_PI * static_cast(t) / kSamples); in[t][1] = 0; } fftw_plan p = fftw_plan_dft_1d(kSamples, in, out, FFTW_FORWARD, FFTW_ESTIMATE); fftw_execute(p); for (int t = 0; t < kSamples; t++ ) { printf("%02d\t%+5.2f%+5.2fi\n", t, out[t][0], out[t][1]); } return 0; } また、(5)で下記の記述があるので、上記の.cppファイルがある場所に下記のファイルを作製したのですが間違いでしょうか?詳しい方がいましたら教えていただけないでしょうか? よろしくお願いいたします。 (5) 実際に使用するに ライブラリを実際に使用するにあたっては stdafx.h に #include <fftw3.h> stdafx.cpp に #pragma comment(lib, “libfftw3-3.lib”) #pragma comment(lib, “libfftw3f-3.lib”) #pragma comment(lib, “libfftw3l-3.lib”) を追記すると良いはずです。

  • fatal error C1083: include ファイルを開けません というエラーが出ます

    初心者です。ソースは以下の通りです。 #include "stdafx.h" #include <cv.h> #include <highgui.h> #pragma comment(lib,"cv.lib") #pragma comment(lib,"cxcore.lib") #pragma comment(lib,"highgui.lib") int _tmain(int argc, _TCHAR* argv[]) { Ip1Image* img; //画像変数宣言 cvNamedWindow("画像表示"); // 表示ウィンドウの作成 img = cvLoadImage("Image.jpg"); //画像ファイルの読み込み if(img == NULL){ //ファイルが読み込めない場合 printf("ファイルが読み込めません。\n"); cvWaitKey(0); //キー入力待機 return -1; } cvShowImage("画像表示", img); //表示ウィンドウに画像を表示 cvWaitKey(0); //キー入力待機 cvDestroyWindow("画像表示"); //表示ウィンドウの破棄 cvReleaseImage(&img); //画像領域の解放 return 0; } 以上のソースをビルドすると、以下のようなエラーが出てしまって、うまくコンパイルすることができません。 1>------ ビルド開始: プロジェクト: ImageDisplay, 構成: Debug Win32 ------ 1>コンパイルしています... 1>ImageDisplay.cpp 1>c:\users\g031f096\documents\visual studio 2008\projects\imagedisplay\imagedisplay\imagedisplay.cpp(5) : fatal error C1083: include ファイルを開けません。'cv.h': No such file or directory 1>ビルドログは "file://c:\Users\g031f096\Documents\Visual Studio 2008\Projects\ImageDisplay\ImageDisplay\Debug\BuildLog.htm" に保存されました。 1>ImageDisplay - エラー 1、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ========== どのようにすれば通るのでしょうか?よろしくお願いします。開発環境は Visual C++ 2008 Express Editionです。

  • gdi+ LNK1103

    Windows2000、VC++6.0 mfc こんにちは。 gdi+を使ってJPEG 画像を保存しようと思ったらリンクエラーになってしまいました。以下状況です。 Platform SDKをダウンロードし、INCLUDEおよびLIBのパスをオプション-ディレクトリタ-インクルードファイル、ライブラリファイルに追加して最上位に移動しました。gdiplus.dllをダウンロードし、exeと同じフォルダに置きました。 StdAfx.h  #pragma comment(lib, "GdiPlus.lib")  #include <gdiplus.h>  using namespace Gdiplus; CxxxApp.h private: ULONG_PTR m_gdiplusToken; CxxxApp.cpp   BOOL CHogeApp::InitInstance(){    Gdiplus::GdiplusStartupInput gdiplusStartupInput;    Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);    … } void CxxxApp::OnPicture() {  CLSID encoderClsid;  GetEncoderClsid(L"image/jpeg", &encoderClsid);  LONG lQuality = 80;  EncoderParameters EncoderParams;  EncoderParams.Parameter[0].Guid = EncoderQuality;//------☆  EncoderParams.Parameter[0].NumberOfValues = 1;  EncoderParams.Parameter[0].Type = EncoderParameterValueTypeLong;  EncoderParams.Parameter[0].Value = (VOID*) &lQuality;  EncoderParams.Count = 1; … } この状態でビルドすると、 GdiPlus.lib(imagingguds.obj) : fatal error LNK1103: デバッグ情報が壊れています; モジュールを再コンパイルしてください というメッセージが出ます。どうやら☆の行で出ているようなのですが、どうしていいのか分かりません。ちなみにこれはデバッグバージョンでのみ出現し、リリースバージョンでは何のエラーも出ません。 何か間違い、足りないものがあればご指摘ください。 お願いします。

  • DirectX サンプル エラー

    こんにちは。DirectXプログラミング初心者です。 Visual C++ 2005 Express Editonで開発しております。 Platfrom SDKもインストール済みです。 DirectX 9.0 SDKの最新版のサンプルをコンパイルしようとすると、 fatal error C1083: include ファイルを開けません。'dimm.h': No such file or directory とエラーがでてコンパイル出来ません。 また、工学社の「DirectX9 DirectX Graphics」という本に付属しているDirectX 9.0 SDK(December 2004)をインストール(新しいSDKを消して)して、付属のサンプルをコンパイルすると、 DXGSample01.obj : error LNK2019: 未解決の外部シンボル _DXTraceW@20 が関数 "long __cdecl InitApp(struct HINSTANCE__ *)" (?InitApp@@YAJPAUHINSTANCE__@@@Z) で参照されました。 DXGSample01.obj : error LNK2019: 未解決の外部シンボル _D3DXCreateSprite@8 が関数 "long __cdecl InitDXGraphics(void)" (?InitDXGraphics@@YAJXZ) で参照されました。 DXGSample01.obj : error LNK2019: 未解決の外部シンボル _D3DXCreateTextureFromFileW@12 が関数 "long __cdecl InitDXGraphics(void)" (?InitDXGraphics@@YAJXZ) で参照されました。 DXGSample01.obj : error LNK2019: 未解決の外部シンボル _Direct3DCreate9@4 が関数 "long __cdecl InitDXGraphics(void)" (?InitDXGraphics@@YAJXZ) で参照されました。 Debug/DXGSample01.exe : fatal error LNK1120: 外部参照 4 が未解決です。 と出てきます。 コンパイラの方の「プロパティ」→「構成プロパティ」→「リンカ」→「入力」の「追加の依存ファイル」に d3d9.lib d3dx9dt.lib dxerr9.lib dxguid.lib の4つは追加済みです。 インクルードパス・ライブラリパスがおかしいのでしょうか? ご回答お願いいたします。