使用MS2008做了一个MFC的一个小程序。添加了一个resource symbol后编译的时候就出现了这个错误
error RC2103 : unexpected end of file in string literal
之前无论怎么添加symbol都不会出现错误。不知道今晚是怎么了,只要我一添加在编译就错误。
出现问题就要找到问题,找不到问题今夜怎么能睡个好觉呢?
分析:
从备份出来的程序,编译不会出现问题。我只添加了一个bmp的symbol后。就出现了这个问题,起初怀疑是我文件的格式不对。后来换了一个原来加载过的bmp文件还是会出现问题。可以排除文件错误的问题。
源码的问题不可能。因为我只是添加了bmp文件,但是对bmp文件未作任何处理,不应该出现这样的问题。
双击:error RC2103 : unexpected end of file in string literal 这个错误信息后。提示test.rc文件已经被打开。关闭后弹出来test.rc内容。仔细浏览后,由于文件内容太多,太复杂,而且还不易发现错误。最后提取出来好用的和不好用的两个文件,使用UE进行对比。最终发现错误原因。修改后build OK。
解决办法:
1.打开*.rc文件。
2.查找到最后几行。
/
//
// Generated from the TEXTINCLUDE 3 resource.
//
#define _AFX_NO_SPLITTER_RESOURCES
#define _AFX_NO_OLE_RESOURCES
#define _AFX_NO_TRACKER_RESOURCES
#define _AFX_NO_PROPERTY_RESOURCES
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
LANGUAGE 4, 2
#pragma code_page(936)
#include "res\test.rc2" // 非 Microsoft Visual C++ 编辑的资源
#include "afxres.rc" // 标准组件
#endif
1 TYPELIB "test.tlb
/
#endif // not APSTUDIO_INVOKED
这个是出错的文件。
仔细查看 1 TYPELIB "test.tlb 发现少了一个"号 修改成1 TYPELIB "test.tlb"
编译后OK!
一个小小的问题,困扰了我20分钟。郁闷~~~
作者:小盒子
时间:2010年08月23日
地点:大连
注意:该文未经笔者同意请勿转载,如需转载请与笔者联系。谢谢合作!