`

error C2061: syntax error : identifier 'THIS_FILE'

阅读更多
今天写个数字图像实验课的mfc代码,里面用到了stl,出现了一堆莫名其妙的错误提示。如下:
引用
error C2091: function returns function
d:\program files\microsoft visual studio\vc98\include\new(35) : error C2809: 'operator new' has no formal parameters
d:\program files\microsoft visual studio\vc98\include\new(36) : error C2061: syntax error : identifier 'THIS_FILE'
d:\program files\microsoft visual studio\vc98\include\new(37) : error C2091: function returns function

d:\program files\microsoft visual studio\vc98\include\new(35) : see declaration of 'new'
d:\program files\microsoft visual studio\vc98\include\new(41) : error C2061: syntax error : identifier 'THIS_FILE'
d:\program files\microsoft visual studio\vc98\include\new(42) : error C2091: function returns function

d:\program files\microsoft visual studio\vc98\include\new(35) : see declaration of 'new'
d:\program files\microsoft visual studio\vc98\include\new(42) : error C2809: 'operator new' has no formal parameters
d:\program files\microsoft visual studio\vc98\include\new(42) : error C2065: '_P' : undeclared identifier
d:\program files\microsoft visual studio\vc98\include\memory(16) : error C2061: syntax error : identifier 'THIS_FILE'
d:\program files\microsoft visual studio\vc98\include\memory(17) : error C2091: function returns function

d:\program files\microsoft visual studio\vc98\include\memory(16) : see declaration of 'new'
d:\program files\microsoft visual studio\vc98\include\memory(17) : error C2809: 'operator new' has no formal parameters
d:\program files\microsoft visual studio\vc98\include\memory(20) : error C2954: template definitions cannot nest


不过还好,google一下就出来了,嗯。我们去官网看看去:
http://support.microsoft.com/default.aspx?scid=kb;en-us;143207
我的情况应该属于case2,
也就是这个:
引用

Case Two
In addition, you may get this different set of errors:
{include directory}\new.h(80) : error C2061: syntax error : identifier 'THIS_FILE'
{include directory}\new.h(80) : error C2091: function returns function
{include directory}\new.h(80) : error C2809: 'operator new' has no formal parameters#endif
{include directory}\new.h(80) : error C2065: 'ptr' : undeclared identifier

呵呵,然后看解决办法啊:
引用
The second set of errors occurs if you add the STL include directive after the following definitions and do not include New.h among your include directives:
   #ifdef _DEBUG
   #define new DEBUG_NEW
   #undef THIS_FILE
   static char THIS_FILE[] = __FILE__;
   #endif

Including New.h will work around this problem as well. Note that these definitions are no longer necessary in MFC code and can be deleted.

可以这样解决:
#include <vector>
#include <algorithm>
using namespace std;
/*
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
*/

把std的那些东西放到mFC声明的代码的前面,或者直接注释掉MFC代码。rebulid all。pass。

分享到:
评论

相关推荐

    最常见的VC++编译错误信息_fatal_error

    20. Error LNK2001:unresolved external symbol "public: virtual _ _thiscall C……::~C……(void)" 这是一个常见的连接错误,原因是连接时发现没有实现的外部符号。解决方法是检查外部符号的实现是否正确。 ...

    C语言命语法错误大全

    6. error C2061: syntax error : identifier 'x' 该错误是由于标识符'x'附近存在语法错误引起的。解决方法是检查标识符'x'的语法是否正确,确保括号和分号的使用正确。 7. error C2065: 'i' : undeclared ...

    c++常见20个编译错误

    20、error LNK2001: unresolved external symbol "public: virtual _ _thiscall C……::~C……(void)"。 此错误是由于连接时发现没有实现的外部符号,可能是变量、函数等未定义引起的。 C++编译错误千千万万,但...

    VC6.0错误指令及解决方法

    fatal error C1083: Cannot open include file: 'stio.h': No such file or directory 尝试包含一个不存在的头文件,`stio.h`是错误的文件名,正确的应该是`stdio.h`。 **解决方法:** - 将`stio.h`更正为`stdio....

    最常见的20种VC++编译错误信息集合

    **错误信息**:error LNK2001: unresolved external symbol "public: virtual __thiscall C::~C(void)" **解释**:链接器找不到公共虚拟析构函数 `C::~C()` 的实现。 **解决方法**: - 确保类 `C` 的析构函数已正确...

    c++编译时经常出现的错误

    error LNK2001: unresolved external symbol "public: virtual _thiscall C……::~C……(void)" ``` **原因:** 此错误是因为链接器找不到对应的外部符号。 **解决方法:** 确保所有依赖的库都已经正确链接,并且...

    20种VC++编译错误信息

    error LNK2001: unresolved external symbol "public: virtual __thiscall C::~C(void)" **描述**:未解析外部符号`public: virtual __thiscall C::~C(void)`。 **解决方案**: - 确认类`C`的析构函数已经实现。 - ...

    Visul C++常见错误提示

    二十、error LNK2001: unresolved external symbol "public: virtual _thiscall C……::~C……(void)" 这是因为连接时发现没有实现的外部符号(变量、函数等)。解决方法是检查外部符号是否正确。

    C++常见错误汇总

    fatal error C1083: Cannot open include file: 'R…….h': No such file or directory 这个错误是不能打开包含文件“R…….h”:没有这样的文件或目录。解决方法是检查文件路径是否正确,是否存在该文件。 LINK :...

    C语言常见的语法错误

    2.fatal error C1083:Cannot open include file:’R……h’:No such file or directory. 该错误是由于编译器无法打开包含头文件“R……h”,因为该文件不存在或路径不正确。解决方法是检查包含头文件的路径是否正确...

    KEIL编译错误信息

    Syntax error (error5):** - **含义:** 代码中存在语法错误。 - **解决方法:** 仔细检查报错行及其周围的代码,确保符合语言规范。 **6. Error in real constant (error6):** - **含义:** 实数常量格式错误。 -...

    C++常见错误汇总.doc

    4. error LNK2001: unresolved external symbol "public: virtual _ _thiscall C……::~C……(void)" 该错误是连接错误之一,出现该错误的原因是链接器找不到函数或变量的定义。解决方法是检查是否声明了函数或变量...

    常见的20种VC++编译错误信息集合

    20. **error LNK2001: unresolved external symbol public: virtual __thiscall C::~C(void)**:链接错误LNK2001表明编译器无法找到公共虚拟析构函数`C::~C()`的定义。确保所有类的虚拟函数都有正确的实现,并且链接...

    VC++常见错误一览表

    ##### error LNK2001: unresolved external symbol "public: virtual __thiscall C::~C(void)" 此链接错误表示未解决的外部符号。 - **解决方案**: - 确认类的析构函数在某个文件中有定义。 - 检查编译选项和链接...

    计算机C语言常见错误分析中英文对照表

    8. `error C2007: #define syntax` 这表明`#define`指令的语法错误。检查`#define`后面是否跟上了有效的宏名称。 9. `error C2008: 'xxx' : unexpected in macro definition` 宏定义中出现了预期外的字符。确保宏...

    VC++常见错误提示

    20. error LNK2001: unresolved external symbol "public: virtual __thiscall C……::~C……(void)" 这是一种连接错误,发生在连接时发现没有实现的外部符号(变量、函数等)时,通常是因为变量或函数的定义不正确...

    最常见的20种VC++编错误信息.doc

    error LNK2001: unresolved external symbol "public: virtual _thiscall C……::~C……(void)" 当链接器在编译的目标文件中找不到某个外部符号的定义时,会引发此错误。解决方法是检查所有相关的头文件和源文件,...

    Visual C++常见错误(初学者)

    `error LNK2001: unresolved external symbol "public: virtual __thiscall C::~C(void)"` 错误 `LNK2001` 表示无法解析外部符号 `public: virtual __thiscall C::~C(void)`。这通常是因为编译器未能找到类 `C` 的...

    C++程序编译中常见错误资料.pdf

    调试器错误信息:error C2676: binary '&gt;&gt;' : 'class std::basic_ostream,struct std::char_traits&lt;char&gt; &gt;' does not define this operator or a conversion to a type acceptable to the predefined operator。...

    常见的vc编译错误

    `error LNK2001: unresolved external symbol "public: virtual __thiscall C::~C(void)"` **错误原因:** 链接器找不到类`C`的析构函数定义。 **解决办法:** 确保`C`类的析构函数被正确定义并且可被链接器找到...

Global site tag (gtag.js) - Google Analytics