用VS2010 中的MFC编程,出现一大堆错误,估计是前几天用到了extern “c”语句造成的,请问如何解决? 10
错误提示:errorLNK2001:unresolvedexternalsymbol"public:void__thiscallCWinApp::OnFilePrintS...
错误提示:
error LNK2001: unresolved external symbol "public: void __thiscall CWinApp::OnFilePrintSetup(void)" (?OnFilePrintSetup@CWinApp@@QAEXXZ)
用MFC 编程一开始还没有任何问题,后来就不行了,我是菜鸟,请各位高手帮我看看,告诉我解决办法,最好详细一点,谢谢
前几天用到了静态链接库,是不是这里出现了问题? 展开
error LNK2001: unresolved external symbol "public: void __thiscall CWinApp::OnFilePrintSetup(void)" (?OnFilePrintSetup@CWinApp@@QAEXXZ)
用MFC 编程一开始还没有任何问题,后来就不行了,我是菜鸟,请各位高手帮我看看,告诉我解决办法,最好详细一点,谢谢
前几天用到了静态链接库,是不是这里出现了问题? 展开
3个回答
展开全部
你看看extern “c”语句包含的范围。extern “c”代表采用 C风格命名 比如OnFilePrintSetup函数在obj或库中就叫 "OnFilePrintSetup",如果不采用extern “c”,那么采用C++风格的命名编译后就是
"?OnFilePrintSetup@CWinApp@@QAEXXZ" ,这个错误出现可能是因为静态链接库使用C++风格。而你的程序定义成C风格,或者相反,去掉 extern “c”看看出什么错误。要严格安排extern “c”限定的范围,
"?OnFilePrintSetup@CWinApp@@QAEXXZ" ,这个错误出现可能是因为静态链接库使用C++风格。而你的程序定义成C风格,或者相反,去掉 extern “c”看看出什么错误。要严格安排extern “c”限定的范围,
展开全部
extern 是外部的意思。
如果 在头文件里 写的只是 几个函数的原型声明,而函数定义在别的文件中,则可以加 extern。编译器 做 链接时 会到 外面(.obj 或库)去找。
如果 在头文件里 写了完整的函数定义,那么,它就不是外部函数。不能加extern。
一般情况下,好象不用写extern,编译器在本程序找不到,自己会到库里找,找不到会报错。VC++编译器。
如果 在头文件里 写的只是 几个函数的原型声明,而函数定义在别的文件中,则可以加 extern。编译器 做 链接时 会到 外面(.obj 或库)去找。
如果 在头文件里 写了完整的函数定义,那么,它就不是外部函数。不能加extern。
一般情况下,好象不用写extern,编译器在本程序找不到,自己会到库里找,找不到会报错。VC++编译器。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
extern 是外部的意思。
如果 在头文件里 写的只是 几个函数的原型声明,而函数定义在别的文件中,则可以加 extern。编译器 做 链接时 会到 外面(.obj 或库)去找。
如果 在头文件里 写了完整的函数定义,那么,它就不是外部函数。不能加extern。
一般情况下,好象不用写extern,编译器在本程序找不到,自己会到库里找,找不到会报错。VC++编译器。
如果 在头文件里 写的只是 几个函数的原型声明,而函数定义在别的文件中,则可以加 extern。编译器 做 链接时 会到 外面(.obj 或库)去找。
如果 在头文件里 写了完整的函数定义,那么,它就不是外部函数。不能加extern。
一般情况下,好象不用写extern,编译器在本程序找不到,自己会到库里找,找不到会报错。VC++编译器。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询