0

Visual Studio 2010 で奇妙なバグが発生しています...

私は、MS Kinect を使用する音声認識プログラムのために、VS 2010 Ultimate で Kinect for Windows SDK v1.8 を使用しています。

サンプルの SpeechBasics (Kinect Developer Toolkit Browser で入手可能) で説明されているように、既定のシステム インクルードとライブラリ ディレクトリを一覧表示する前に、具体的な VC++ インクルードとライブラリ パスをプロジェクト プロパティに追加しました。

しかし、ソリューションを構築すると、次のエラーが発生します。

CKinect_Squeletton.obj: エラー LNK2001: 未解決の外部シンボル _SPDFID_WaveFormatEx CKinect_Squeletton.obj: エラー LNK2001: 未解決の外部シンボル _CLSID_SpStream CKinect_Squeletton.obj: エラー LNK2001: 未解決の外部シンボル _CLSID_SpInprocRecognizer CKinect_Squeletton.obj: エラー LNKresolCategory トークン外部トークン未解決のシンボル

ビルドに失敗しました。

すべてのインクルード ファイル、すべてのプロジェクト プロパティをチェックしました。私は多くの調査を行い、応答の多くの可能性をテストしましたが、私の問題に対する応答が見つかりませんでした...

x64 ターゲット アーキテクチャでビルドしてソリューションをクリーンアップしようとしましたが、常にうまくいくとは限りません。

  • なぜ私はこの問題を抱えているのですか?
4

2 に答える 2

0

コメントで提案されているように、ソーシャル MSDN のリンクを確認しました

__uuidof(SpStream)一部のエラーは解決しましたが、代わりにCLSID_SpStream、およびの__uuidof(SpInprocRecognizer)代わりに使用したすべてのエラーを解決したわけではありませんCLSID_SpInprocRecognizer

しかしCLSID_SpObjectTokenCategory、私は自分のコードには見つかりませんでした。

ISpObjectToken *pEngineToken = NULL;
hr = SpFindBestToken(SPCAT_RECOGNIZERS,L"Language=40C;Kinect=True",NULL,&pEngineToken);

と交換できません__uuidof(SpObjectTokenCategory)

また、エラーを解決する方法が常にわかりません

CKinect_Squeletton.obj: error LNK2001: unresolved external symbol _SPDFID_WaveFormatEx

Project + Properties、Linker、Input に sapi.lib を追加しました。#pragma comment(lib, "sapi.lib")

于 2014-04-05T18:44:42.553 に答える
0

問題を解決しました!

私は Windows 7 64 ビットで作業しており、MS Speech Platform SDK 11 x64 をインストールしました。

しかし、x86 ターゲット アーキテクチャでビルドするには、MS Speech Platform SDK 11 x86 をインストールして使用し、プロジェクト プロパティで x86 sapi lib のパスを指定する必要がありました。

プロジェクトに含めた他の特定のライブラリはx86アーキテクチャ用であるため、x64ターゲットアーキテクチャでビルドしようとすると、コンパイラでエラーが発生しました...

申し訳ありませんが、この解決策はいつか誰かを助けるでしょう!

于 2014-04-06T00:25:09.887 に答える