fatal error LNK1120: 1 unresolved externals 30

初学者,求高手帮忙!!!!!!!!!!急用--------------------Configuration:教职工管理系统-Win32Debug------------... 初学者,求高手帮忙!!!!!!!!!!急用

--------------------Configuration: 教职工管理系统 - Win32 Debug--------------------
Linking...
教职工管理系统Dlg.obj : error LNK2001: unresolved external symbol "public: __thiscall CMyDlg1::CMyDlg1(class CWnd *)" (??0CMyDlg1@@QAE@PAVCWnd@@@Z)
Debug/教职工管理系统.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.

教职工管理系统.exe - 1 error(s), 0 warning(s)

方便的话留下邮箱,我将源码发过去.......
展开
 我来答
workingroy
推荐于2017-06-14 · TA获得超过690个赞
知道小有建树答主
回答量:305
采纳率:0%
帮助的人:279万
展开全部
错误消息
无法解析的外部符号“symbol”

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

该错误信息之后为错误 LNK1120。

可能的原因

在将托管库或 Web 服务项目从 Visual C++ 2003 升级到 Visual C++ 2005 时,/Zl 编译器选项将添加到“命令行”属性页中。这将导致 LNK2001。请从“命令行”属性页中移除 /Zl,以解决此问题。有关更多信息,请参见 /Zl(省略默认库名) 和 如何:打开项目属性页。或者,将 msvcrt.lib 和 msvcmrt.lib 添加到链接器的“附加依赖项”属性中。

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

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

具体原因

代码问题

如果 LNK2001 诊断文本报告 __check_commonlanguageruntime_version 是无法解析的外部符号,则请参见 LNK2019 获得有关如何解决该问题的信息。

成员模板的定义超出了类的范围。Visual C++ 的一个限制是,成员模板的定义必须完全位于封闭类内。有关 LNK2001 和成员模板的更多信息,请参见知识库文章 Q239436。

代码或模块定义 (.def) 文件中的大小写不匹配会导致 LNK2001。例如,当在一个 C++ 源文件中将一个变量命名为 var1,并试图在另一个源文件中以 VAR1 访问该变量时。

如果项目使用函数内联,但在 .cpp 文件而非头文件中定义函数,则会导致 LNK2001。

从 C++ 程序调用 C 函数但不使用 extern "C"(这导致编译器使用 C 命名约定)会导致 LNK2001。编译器选项 /Tp 和 /Tc 使编译器将文件分别编译为 C++ 或 C,与文件扩展名无关。这些选项会导致函数名与您所期望的名称不同。

试图引用没有外部链接的函数或数据会导致 LNK2001。在 C++ 中,内联函数和 const 数据具有内部链接,除非被显式指定为 extern。

缺少函数主体或变量会导致 LNK2001。如果只有函数原型或 extern 声明,编译器继续运行而不会出现任何错误,但由于没有保留函数代码或变量空间,链接器将无法解析地址调用或变量引用。

调用参数类型与函数声明中的参数类型不匹配的函数会导致 LNK2001。名称修饰将函数参数合并到最终修饰函数名中。

错误包含的原型导致编译器需要没有提供的函数体,这样会导致 LNK2001。如果同时具有函数 F 的类实现和非类实现,请注意 C++ 范围解析规则。

在使用 C++ 时,将函数原型包含在类定义中但未能包含实现(该类的此函数的实现)会导致 LNK2001。

试图从抽象基类的构造函数或析构函数调用纯虚函数会导致 LNK2001。纯虚函数没有基类实现。

试图在函数范围外使用用该函数声明的变量(局部变量)会导致 LNK2001。

在生成 ATL 项目的发布版本时,指示需要 CRT 启动代码。若要修复,请执行下列操作之一:

将 _ATL_MIN_CRT 从预处理器定义的列表中移除,以允许包括 CRT 启动代码。有关更多信息,请参见常规配置设置属性页。

如果可能,移除对需要 CRT 启动代码的 CRT 函数的调用,而是使用它们的 Win32 等效函数。例如,使用 lstrcmp,而不要使用 strcmp。需要 CRT 启动代码的已知函数是一些字符串和浮点函数。

========================
详情搜索MSDN。
百度网友56ffa15
2012-08-08 · 超过12用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:26.5万
展开全部
一般是函数声明了,还没有定义。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创作者Xj8ztEdagk
2020-06-11 · TA获得超过3654个赞
知道大有可为答主
回答量:3177
采纳率:30%
帮助的人:167万
展开全部
你说的第四个步骤出错了,应该是你的dll都没生成吧。换个网站看吧,别看那个了,说明有问题。据我所知,这样生成的dll入口函数是dllmain(),建议你看孙鑫的视频,他会教你正确的步骤。
至少那个网站的使用dll说明少了一个步骤,没有连接.lib文件。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式