1

これが私の状況です (私は C++ MFC コーディングに非常に慣れていないため、既存のアプリケーション プロジェクトをデバッグしようとしています)。

コードでこの行を使用します (Visual Studio 2012 MFC プロジェクトで)

CoCreateInstance(CLSID_PortableDeviceValues, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&x));

プロジェクトの実行中に、このようなリンカ エラーが発生します

エラー LNK2001: 未解決の外部シンボル _CLSID_PortableDeviceValues

これは、コードで参照しているすべての CLSID 値で発生します。このような

エラー LNK2001: 未解決の外部シンボル _CLSID_PortableDeviceKeyCollection

エラー LNK2001: 未解決の外部シンボル _IID_IPortableDeviceEventCallback

エラー LNK2001: 未解決の外部シンボル _CLSID_PortableDeviceManager

エラー LNK2001: 未解決の外部シンボル _CLSID_PortableDeviceServiceFTM

「CLSID_PortableDeviceValues」の宣言を確認したところ、「PortableDeviceTypes.h」で見つかり、そのライブラリもインポートしました。

コンパイラ エラーは発生しませんが、上記のリンカー エラーが発生します。

誰かがここで私を助けてくれませんか。私はこれを解決できませんでした..

4

1 に答える 1

3

プロジェクトにPortableDeviceGUIDs.libを追加する必要があります。( IPortableDeviceValues について
は、MSDN ドキュメントの「要件」セクションを参照してください)

リンカーがプロジェクトをビルドするとき、識別子の背後にある実装データを探しますCLSID_PortableDeviceValues。このデータはライブラリ PortableDeviceGUIDs.lib にあり、リンカーはこのライブラリを使用するように指示する必要があります。

ソース コードに含めたヘッダー ファイルは、シンボル「CLSID_PortableDeviceValues」のみを宣言し、その実装をインポートしません。

于 2013-10-30T18:41:34.380 に答える