问题描述:写了一个将类数据以二进制方式写入指定文件的c++代码,报错error LNK2019: 无法解析的外部符号 _main,函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中引用了该符号
1>E:\XXX\Debug\文件操作.exe : fatal error LNK1120: 1 个无法解析的外部命令
开发环境:Win10 + VS2022
错误分析:错误列表提示链接出问题,无法解析的外部符号_main,所以考虑是否为main主函数在定义的时候出了问题,找不到程序入口
源代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
class Person {
public:
char m_Name[64];//用C语言写一般不会出问题,因为C是底层
int m_Age;
};
void test01() {
ofstream ofs("person.txt", ios::binary | ios::out);
//ofs.open("person.txt", ios::binary | ios::out);
//写文件
Person p = {"张三", 18};
//&p返回的是Person*类型,所以需要强转
ofs.write((const char*)&p, sizeof(Person));
ofs.close();
}
int mian() {
test01();
system("pause");
return 0;
}
解决方法:经检查,main函数定义时拼写错误,加以修正
修改后:无报错,成功运行
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
class Person {
public:
char m_Name[64];//用C语言写一般不会出问题,因为C是底层
int m_Age;
};
void test01() {
ofstream ofs("person.txt", ios::binary | ios::out);
//ofs.open("person.txt", ios::binary | ios::out);
//写文件
Person p = {"张三", 18};
//&p返回的是Person*类型,所以需要强转
ofs.write((const char*)&p, sizeof(Person));
ofs.close();
}
int main() {
test01();
system("pause");
return 0;
}