音声認識プログラムを書きたいのですが,分かりません.Microsoft Speech SDK 5.1をダウンロードし,サンプルを眺めていて,自分なりにいざ書こうと思ってみると,コンパイルが通りません.
#include <sphelper.h>
と書いただけでエラーが出ます.SDKをダウンロードした際に付いてきたサンプルプログラムはコンパイルも通り,実行もできます.開発環境はVisual C++ .Netです.Webを調べてみてもなかなか良いページが見つかりません.ご教授お願いします.
エラーが出ます,というのは何の情報にもなりません。
エラーメッセージくらいは最低でも書いてください。
でもって,ここから完全に推論。
sphelper.hが標準インクルードディレクトリの中に存在しないだけでは?
include環境変数に追加するとか,/Iコンパイラオプションを使うとか,
IDEの環境設定で追加するとか,プロジェクトのプロパティで追加するとか,
そういったことはちゃんと行っていますか?
Yuoさん,失礼しました.エラーメッセージを以下に載せます.
Compiling...
SpeechCursorView.cpp
c:\Program Files\Microsoft Speech SDK 5.1\Include\sphelper.h(89) : warning C4267: 'initializing' : conversion from 'size_t' to 'ULONG', possible loss of data
c:\Program Files\Microsoft Speech SDK 5.1\Include\sphelper.h(150) : warning C4267: 'return' : conversion from 'size_t' to 'unsigned int', possible loss of data
c:\Program Files\Microsoft Speech SDK 5.1\Include\sphelper.h(169) : warning C4267: 'initializing' : conversion from 'size_t' to 'ULONG', possible loss of data
c:\Program Files\Microsoft Speech SDK 5.1\Include\sphelper.h(226) : warning C4267: 'initializing' : conversion from 'size_t' to 'ULONG', possible loss of data
c:\Program Files\Microsoft Speech SDK 5.1\Include\sphelper.h(227) : warning C4267: 'initializing' : conversion from 'size_t' to 'ULONG', possible loss of data
c:\Program Files\Microsoft Speech SDK 5.1\Include\sphelper.h(334) : warning C4267: 'initializing' : conversion from 'size_t' to 'ULONG', possible loss of data
c:\Program Files\Microsoft Speech SDK 5.1\Include\sphelper.h(769) : warning C4267: 'initializing' : conversion from 'size_t' to 'const int', possible loss of data
c:\Program Files\Microsoft Speech SDK 5.1\Include\sphelper.h(772) : warning C4267: 'initializing' : conversion from 'size_t' to 'ULONG', possible loss of data
c:\Program Files\Microsoft Speech SDK 5.1\Include\sphelper.h(2544) : warning C4267: '+=' : conversion from 'size_t' to 'ULONG', possible loss of data
c:\Program Files\Microsoft Speech SDK 5.1\Include\sphelper.h(2559) : error C2440: 'initializing' : cannot convert from 'CSpDynamicString' to 'SPPHONEID *'
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
c:\Program Files\Microsoft Speech SDK 5.1\Include\sphelper.h(2633) : error C2664: 'wcslen' : cannot convert parameter 1 from 'SPPHONEID *' to 'const wchar_t *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
インクルードするディレクトリの設定は行いました.サンプルプログラムをビルドする際には上のエラーはでません.
自己レスです.エラーが出た部分は明示的にキャストすることにより解決しました.それにしてもMicrosoft Speech SDK 5.1を使うことができません.いろいろやってみましたが,どうやらMFCで生成されるstdafx.hの中のヘッダファイルの一部と競合してしまってるみたいです.
ツイート | ![]() |