今天我在Vs.Net2008中使用VC进行c/c++混合编程时遇到了一些问题,现总结如下:
1.问题:打开资源文件时显示“在另一个编辑器中打开”,不能编辑。
解决:关闭Resource.h所在窗口(也可以直接关闭所有窗口)。
2.问题:无法打开文件"LIBC.lib"。
解决:在“配置属性->链接器->输入->忽略特定库”后填入“LIBC.lib ”。
3.问题:无法解析的外部符号 imp__SysFreeString@4。
解决:添加对库OLEAUT32.LIB的引用,如有需要将其拷贝到程序目录中。
4.问题:error C2732: 链接规范与“c_func”的早期规范冲突。
原因:在C++中引用C中的函数,但前后声明不一致:
前有:void c_func(void);
后面:extern "C" c_func(void); //C2732
解决:检查程序中是否有同一函数在两处声明不一致的错误(特别注意头文件)。