中易网

用VS2010 中的MFC编程,出现一大堆错误,估计是前几天用到了extern “c”语句造成的,请问如何解决?

答案:3  悬赏:80  
解决时间 2021-01-13 20:25
  • 提问者网友:遁入空寂
  • 2021-01-13 08:10
用VS2010 中的MFC编程,出现一大堆错误,估计是前几天用到了extern “c”语句造成的,请问如何解决?
最佳答案
  • 二级知识专家网友:怙棘
  • 2021-01-13 09:39
你看看extern “c”语句包含的范围。extern “c”代表采用 C风格命名 比如OnFilePrintSetup函数在obj或库中就叫 "OnFilePrintSetup",如果不采用extern “c”,那么采用C++风格的命名编译后就是
"?OnFilePrintSetup@CWinApp@@QAEXXZ",这个错误出现可能是因为静态链接库使用C++风格。而你的程序定义成C风格,或者相反,去掉extern “c”看看出什么错误。要严格安排extern “c”限定的范围,
全部回答
  • 1楼网友:拜訪者
  • 2021-01-13 11:58
extern 是外部的意思。
如果 在头文件里 写的只是 几个函数的原型声明,而函数定义在别的文件中,则可以加 extern。编译器 做 链接时 会到 外面(.obj 或库)去找。
如果 在头文件里 写了完整的函数定义,那么,它就不是外部函数。不能加extern。
一般情况下,好象不用写extern,编译器在本程序找不到,自己会到库里找,找不到会报错。VC++编译器。
  • 2楼网友:摆渡翁
  • 2021-01-13 10:42
extern 是外部的意思。
如果 在头文件里 写的只是 几个函数的原型声明,而函数定义在别的文件中,则可以加 extern。编译器 做 链接时 会到 外面(.obj 或库)去找。
如果 在头文件里 写了完整的函数定义,那么,它就不是外部函数。不能加extern。
一般情况下,好象不用写extern,编译器在本程序找不到,自己会到库里找,找不到会报错。VC++编译器。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息