LNK2019 无法解析的外部符号 WinMain,该符号在函数 “int __cdecl invoke_main(void)” (?invoke_main@@YAHXZ) 中被引用
这个报错网上查了很多,大概原因是:
c语言运行时找不到适当的程序入口函数,
一般情况下,如果是windows程序,那么WinMain是入口函数,在VS中新建项目为“win32项目”
如果是dos控制台程序,那么main是入口函数,在VS中新建项目为“win32控制台应用程序”
而如果入口函数指定不当,很显然c语言运行时找不到配合函数,它就会报告错误。
网上找到的解决方法(有点乱,建议跳过这里,直接看我写的总结):
方法一:
[XXX属性] -> [配置属性] -> [链接器]-> [高级],在[入口点]里写入mainCRTStartup,确定即可
方法二:
把应用程序类型改为控制台类型:
Go to “Linker settings -> System”. Change the field “Subsystem” from “Windows” to “Console”. Done.
中文版:VC左边,解决方案窗口,在项目上点右键,选择属性->配置->链接->系统,将子系统的window设置成console.
//新建数据库文件
void DataBase::CreateDataBase(QSqlDatabase &database, QString dbpath, QString connectName)
{
if (QSqlDatabase::contains(connectName))//connectName是连接名
{
database = QSqlDatabase::database(connectName);//连接存在,绑定连接
}
else
{
//连接不存在,创建连接,创建数据库
database = QSqlDatabase::addDatabase("SQLCipher", connectName);
database.setDatabaseName(dbpath);
database.setPassword("123");
}
if (!database.open())
{
//"打开数据库失败!"
}
}