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

类别:编程语言 点击:0 评论:0 推荐:

在自已的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 上得到无法解析的外部对象;

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

本文地址:http://com.8s8s.com/it/it23821.htm