2012-03-07 74 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代码在哪里?标题中实际上是什么?你没有提供必要的信息。 – 2012-03-07 05:56:57

+0

尝试在win32def.h中包含头文件TCHAR – Jay 2012-03-07 06:03:20

+0

抱歉,它在那里。 – user891260 2012-03-07 06:17:48

回答

0

什么编译器使用? 我不确定,但尝试打开选项“将wchar_t视为内置类型”。

+0

这是VS 2005 C编译器。项目设置中已经打开选项“将wchar_t作为内置类型”。 – user891260 2012-03-07 07:56:27

+0

也许反之亦然? (我没有编译器现在检查它) – Jurlie 2012-03-07 08:28:24

+1

问题解决:我没有意识到包含文件路径中有另一个win32def.h副本,它具有相同的#ifdef警卫但未定义my_tchar。通过更改#ifdef找到它,然后编译器在另一个win32def.h副本中抱怨。 – user891260 2012-03-07 08:34:58