ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

C言語とC++言語コミュのc++の型変換について

  • mixiチェック
  • このエントリーをはてなブックマークに追加
趣味で音声認識をやってみようと思い、友人の進めもあって入門的なものとして
Microsoftの Speech SDK 5.1 のSimple Dictationを使ってみることにしました。
言語はc++です
使用しているosはwindows2000で環境はmicrosoft visual studio 2005 を使用しています。
しかしこのプログラムをコンパイル使用とすると以下のようなエラーが出ました。


//エラー始め
c:\program files\microsoft speech sdk 5.1\include\sphelper.h(2559) : error C2440: '初期化中' : 'CSpDynamicString' から'SPPHONEID *' に変換できません。
この変換を実行可能なユーザー定義変換演算子がないか、または演算子を呼び出せません。
c:\program files\microsoft speech sdk 5.1\include\sphelper.h(2634) : error C2664: 'wcslen' : 1 番目の引数を'SPPHONEID *' から'const wchar_t *' に変換できません。(新しい機能; ヘルプを参照)
指示された型は関連がありません。変換にはreinterpret_cast、C スタイルキャストまたは関数スタイルのキャストが必要です。
ブラウザ情報ファイルを作成しています...
//エラー終わり

googleでreinterpret_castを調べてみたのですが、関数のようなものの使い方がよくわからずに困り果てています。
型の変換をしたらいいということまではわかったのですが…
どなたか解決策を教えていただけないでしょうか??

コメント(4)

Cスタイルなら
SPPHONEID *a;
(const wchar_t *)a

reinterpret_castなら
reinterpret_cast<const wchar_t *>(a)
ですかね。

SDKのヘッダのエラーのようですね。

VC++2005で、SPPHONEIDの宣言を見てみてください。
const charになってませんか?

おそらくMicrosoftの Speech SDK 5.1がUnicodeに対応していないと思います。
(VC++2003より古いのかな)


プロジェクトの設定で、「文字セット」を「マルチバイト」にしてみてはどうでしょうか?
演算子と関数の区別すらついてないようですので、もうすこし
きちんと基礎を固めたほうがいいと思いますよ。

そもそも「型が合わないってコンパイラが言ってるから」みたいな
理由でキャストしたすべきではありません。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

C言語とC++言語 更新情報

C言語とC++言語のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング