用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 编程一开始还没有任何问题,后来就不行了,我是菜鸟,请各位高手帮我看看,告诉我解决办法,最好详细一点,谢谢
前几天用到了静态链接库,是不是这里出现了问题?
展开
 我来答
ufo1cn
2011-08-28 · TA获得超过448个赞
知道小有建树答主
回答量:412
采纳率:0%
帮助的人:220万
展开全部
你看看extern “c”语句包含的范围。extern “c”代表采用 C风格命名 比如OnFilePrintSetup函数在obj或库中就叫 "OnFilePrintSetup",如果不采用extern “c”,那么采用C++风格的命名编译后就是
"?OnFilePrintSetup@CWinApp@@QAEXXZ" ,这个错误出现可能是因为静态链接库使用C++风格。而你的程序定义成C风格,或者相反,去掉 extern “c”看看出什么错误。要严格安排extern “c”限定的范围,
手机用户24232
2011-08-24 · TA获得超过288个赞
知道小有建树答主
回答量:623
采纳率:50%
帮助的人:385万
展开全部
extern 是外部的意思。

如果 在头文件里 写的只是 几个函数的原型声明,而函数定义在别的文件中,则可以加 extern。编译器 做 链接时 会到 外面(.obj 或库)去找。

如果 在头文件里 写了完整的函数定义,那么,它就不是外部函数。不能加extern。

一般情况下,好象不用写extern,编译器在本程序找不到,自己会到库里找,找不到会报错。VC++编译器。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
实浪香8860
2011-08-26 · TA获得超过159个赞
知道答主
回答量:484
采纳率:0%
帮助的人:290万
展开全部
extern 是外部的意思。

如果 在头文件里 写的只是 几个函数的原型声明,而函数定义在别的文件中,则可以加 extern。编译器 做 链接时 会到 外面(.obj 或库)去找。

如果 在头文件里 写了完整的函数定义,那么,它就不是外部函数。不能加extern。

一般情况下,好象不用写extern,编译器在本程序找不到,自己会到库里找,找不到会报错。VC++编译器。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式