2012-03-07 18 views
0

typedefの定義が見つからないかのように、次のコードでコンパイルエラーが発生する理由がわかりません。実際に、私が 'typedef TCHAR my_tchar;'という行を追加すると、 (すでにwin32def.hに入っています)、app.hでコンパイルがうまくいっています。typedefの定義が見つかりません

win32def.h

#ifndef win32def_h 
#define win32def_h 

#include <tchar.h> 

typedef TCHAR my_tchar; 

#endif 

app.h

#include "win32def.h" 
int my_function(const my_tchar *filename, ....) 
compilation error at line of my_function: 

error C2143: syntax error : missing ')' before '*' 
+0

あなたのCコードはどこですか?実際にヘッダーの行は何ですか?あなたは必要な情報を提供していません。 –

+0

TCHARを持つヘッダファイルをwin32def.hに含めてみてください – Jay

+0

申し訳ありませんが、そこにありました。 – user891260

答えて

0

コンパイラが使用されているもの? わかりませんが、オプション "wchar_tを組み込み型として扱う"をオンにしてみてください。

+0

VS 2005 Cコンパイラです。オプション "wchar_tを組み込み型として扱う"は、プロジェクト設定で既に有効になっています。 – user891260

+0

逆の場合もありますか? (私はコンパイラを今すぐチェックする必要はありません) – Jurlie

+1

問題解決:同じ#ifdefガードを持つが、my_tcharを定義していないインクルードファイルのパスにwin32def.hの別のコピーがあることに気付かなかった。 #ifdefを変更してそれを見つけたら、コンパイラはwin32def.hの別のコピーにあるものを文句を言います。 – user891260

関連する問題