|
1. C++调用C中的函数报错无法解析的外部符号,在.h文件中extern。
#ifndef _USBCH372INTERFACE_H #define _USBCH372INTERFACE_H
extern "C"{ ?int openUsbDevice(void); } #endif
2.有时C中调用一些在C++中运行正常的代码也会出错,可能不同环境包含的头文件冲突。例如
我想保存一个文件,在C语言中添加#include <fstream>就会报错。于是新建一个cpp文件 #include "stdafx.h" #include <fstream>
using namespace std; extern "C" { ?? ?int WriteHexStringFile(const unsigned short *pData, int data_count) ?? ?{ ?? ??? ?std::ofstream outFile; ?? ??? ?unsigned short num;
?? ??? ?outFile.open("data.csv", ios::out);
?? ??? ?for(int i = 0;i < data_count;i++) ?? ??? ??? ?outFile<<i<<","<<pData[i]<<","<<endl;
?? ??? ?return 0; ?? ?} };
在c文件中extern int WriteHexStringFile(const unsigned short *pData, int data_count);后就可以调用。
3.Error:”const char *”类型的实参与”LPCWSTR”类型的形参不兼容。可以在配置属性->常规->字符集->使用多字节字符集。
|