当前位置:编程学习 > C/C++ >>

c++,directx程序错误

出现unresolved external 函数名


这样的错误是什么导致的?
答案:代码将产生此错误信息,如果它引用了(如函数,变量或标签) ,该连接器无法找到所有的图书馆和目标文件它的搜索。一般情况下,有两个原因发生此错误:什么代码要求不存在(符号拼写错误或使用了错误的情况下,例如) ,或要求的代码错误的(您使用的是混合版本图书馆?一些从一个版本的产品,另一些从另一个版本) 。

无数种编码和编译错误可能会导致LNK2001 。有几个具体原因下面列出,一些有联系的更详细的解释。
编码问题

不匹配的情况下在您的代码或模块定义( 。画质)文件可能会导致LNK2001 。例如,如果您命名一个变量“ var1 ”在一个C + +源文件,并尝试使用它作为“ VAR1 ”在另一个,你会收到此错误。解决办法是完全匹配的情况下,文中所有提及。


一个项目,使用功能内嵌尚未确定了职能。 cpp文件,而不是在头文件可能会导致LNK2001 。


如果您使用的是C + +中,请确保使用外部的“ C ”时调用C函数的C + +程序。通过使用外部的“ C ”您的使用武力的C命名约定。了解编译器开关一样/总蛋白或/锝武力将文件编译为一个C ( /技术合作)或C + + ( /总蛋白)档案不管文件扩展名,或者您可能会得到不同的函数名比您预期的。


试图参考功能或数据不具备的外部联系的原因LNK2001 。 C + +中,内置的功能和构造数据内部的联系,除非明确指定为外部。


丢失函数机构或变量会导致LNK2001 。刚刚一个函数原型或外部宣言将使编译继续,没有错误,但链接将无法解决您的电话的地址或参考变量,因为没有功能代码或变量空间保留。


姓名装修采用参数的函数进入最后装饰功能名称。调用一个函数的参数类型不匹配是在函数声明可能会导致LNK2001 。


错误包括原型将导致编译预期功能的机构,不提供。如果您同时拥有一类和非类执行函数F ,小心C + +的范围内解决的规则。


当使用C + +中,一定要包括执行特定功能的一类,而不只是一个原型的类的定义。


试图调用一个纯虚函数的构造函数或析构函数的抽象基类将导致LNK2001因为按照定义一个纯虚函数没有基类执行。


全球唯一的函数和变量是公开的。
职能宣布与静态修饰的定义文件的范围。静态变量具有相同的限制。试图访问任何静态变量以外的文件,他们被宣布可能会导致出现一个编译错误或LNK2001 。

一个变量的函数内宣布(一局部变量)只能使用范围之内的这一职能。

C + +的全球静态常量有联系。这是不同于c.如果您尝试使用全球不断在C + +的多个文件你错误LNK2001 。一个办法是包括常量初始化的一个头文件,其中包括在您的头。 cpp文件必要时,就好像它是一个函数原型。另一种办法是使变量非恒定和使用时参考不断评估它。

自己看,

上一个:C++课程设计 高分悬赏
下一个:一个c++的简单问题

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,