在MFC上使用UNICODE技技时碰到的LNK2001错误

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

在自已的MFC工程里技技UNICODE很简单只要在afx.h的头文件里的#include语句之前加上

#define _UNICODE

#define UNICODE

这里的第一行是为了让C Run-time Library库技持UNICODE,第二句是MFC库用的.

试着编译后发现这两行似乎不能很好的运行,产生如下错误

Linking...

msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16

Debug/fadfa.exe : fatal error LNK1120: 1 unresolved externals

Error executing link.exe.

TryToUnicode.exe - 2 error(s), 0 warning(s)

MSDN上说明:

number 个无法解析的外部命令

错误 LNK1120 为您提供该链接的无法解析的外部对象数 (number)。导致无法解析的外部对象的条件由错误 LNK2001描述,此错误出现在该错误信息之前(对每个无法解析的外部对象都出现一次)。

可见LNK1120是由LNK2001引起的,于是将MSDN Documnet转向了LNK2001的描术:

无法解析的外部符号“symbol”

代码引用了链接器无法在库和对象文件中找到的内容(如函数、变量或标签)。

可能的原因

代码请求的内容不存在(例如,符号拼写错误或使用错误的大小写)。

代码请求的内容错误(使用的是混合版本的库,一些库来自产品的一个版本,而其他则来自另一个版本)。

该错误信息之后为致命错误 LNK1120

之后有提到:

使用 Unicode 和 MFC 时,如果没有创建 wWinMainCRTStartup 的入口点,将在 _WinMain@16 上得到无法解析的外部对象;

这就是解决原因,具体解决方法如下图:

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航