2012-01-09 5 views
0

に「ダブル」から変換することはできません、これは私が得る正確なエラーです:「関数は、」:「のwchar_t *」私は、Visual Studio 2010でコンパイルしようとしています

Error 65 error C2440: 'function' : 
     cannot convert from 'double' to 'const wchar_t *'  

問題のある行のビーイング:

swprintf(subbuf[num], L"%f\0", va_arg(args, double)); 

これはコードの変更を推奨しないように、きちんとコンパイルされるはずです。 これを解決するコンパイラオプションがありませんか?

EDIT

:ここ

subbufの宣言です:size引数について、また

#define GDB_CHAR wchar_t 
GDB_CHAR subbuf[MAX_SUBS][STATUS_MSG_LEN+1] ; 

、私はまた、ドキュメントページをチェックし、しかし、コンパイラ がエラーをスローしません。 on

swprintf(subbuf[num], L"%c\0", va_arg(args, int)); 

したがって、から変換する際に問題はありません〜wchar_t *であり、関数の引数はokです。

まだ十分な情報が得られていない場合は、コメントをして、他の皆さんに必要なものを教えてください。 ありがとう

+1

どのようなタイプの 'subbuf'ですか? (C++タグがCコードの場合はC++タグを、逆の場合はCコードを削除する必要があります) –

+0

これはコンパイルできないため、宣言されていない識別子を使用します。役に立つコードスニペットを投稿するまで、役に立つ答えを得ることは期待できません。 –

+0

@Deepak:Potatoswatterの答えは正しいです。あなたのコンパイラが 'int 'をポインタに暗黙的に変換しようとするのは驚くことではありませんが、おそらくより高い警告レベルを選択するべきでしょうが、ダブルをポインタに変換することはできません。なぜあなたは正しい議論を使用しようとしないのですか? –

答えて

2

documentationを一目見れば、省略した出力文字列のサイズを指定する引数が必要です。

+0

ありがとうございました。 – Deepak

関連する問題