
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)
方便的话留下邮箱,我将源码发过去....... 展开
--------------------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)
方便的话留下邮箱,我将源码发过去....... 展开
展开全部
错误消息
无法解析的外部符号“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。
无法解析的外部符号“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。
展开全部
一般是函数声明了,还没有定义。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你说的第四个步骤出错了,应该是你的dll都没生成吧。换个网站看吧,别看那个了,说明有问题。据我所知,这样生成的dll入口函数是dllmain(),建议你看孙鑫的视频,他会教你正确的步骤。
至少那个网站的使用dll说明少了一个步骤,没有连接.lib文件。
至少那个网站的使用dll说明少了一个步骤,没有连接.lib文件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询