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”类型的形参不兼容。可以在配置属性->常规->字符集->使用多字节字符集。