From:https://blog.csdn.net/u012570056/article/details/74639894

一,问题描述

MSVCRTD.lib(exe_winmain.obj) : error LNK2019: 无法解析的外部符号 WinMain,该符号在函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中被引用
CamShift.exe : fatal error LNK1120: 1 个无法解析的外部命令

error LNK2001: unresolved external symbol _WinMain
debug/main.exe:fatal error LNK 1120:1 unresolved externals 
error executing link.exe;

二,原因及解决办法

产生这个问题的真正原因是c语言运行时找不到适当的程序入口函数,

一般情况下,如果是windows程序,那么WinMain是入口函数,在VS2017中新建项目为“win32项目”

如果是dos控制台程序,那么main是入口函数,在VS2017中新建项目为“win32控制台应用程序”

而如果入口函数指定不当,很显然c语言运行时找不到配合函数,它就会报告错误。

修改设置适应你的需求

如果是 windows桌面程序:

  • 1. 菜单中选择 项目->属性, 弹出 项目 属性页
  • 2. 在左边栏中依次选择:配置属性 -> C/C++ -> 预处理器,然后在右边栏的 预处理器定义对应的项中删除 _CONSOLE,添加 _WINDOWS
  • 3. 在左边栏中依次选择:配置属性 -> 链接器 -> 系统,然后在右边栏的 子系统 对应的项改为Windows(/SUBSYSTEM:WINDOWS)

如果是 控制台程序:

  • 1. 菜单中选择 项目->属性, 弹出 项目 属性页
  • 2. 在左边栏中依次选择:配置属性 -> C/C++ -> 预处理器,然后在右边栏的 预处理器定义对应的项中删除  _WINDOWS,添加 _CONSOLE
  • 3. 在左边栏中依次选择:配置属性 -> 链接器 -> 系统,然后在右边栏的 子系统 对应的项改为CONSOLE(/SUBSYSTEM:CONSOLE)

VS2019 需要将项目由 debug 改成 release

示例代码:

#include <windows.h>
LONG WINAPI WndProc(HWND, UINT, WPARAM, LPARAM);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{WNDCLASS wc;HWND hwnd;MSG msg;wc.style = 0;                       //类样式wc.lpfnWndProc = (WNDPROC)WndProc;  //window 程序地址wc.cbClsExtra = 0;                  //类  额外的字节wc.cbWndExtra = 0;                  //window  额外的字节wc.hInstance = hInstance;           //实例句柄 wc.hIcon = LoadIcon(NULL, IDI_WINLOGO);  //图标句柄wc.hCursor = LoadIcon(NULL, IDC_ARROW);  //鼠标句柄wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); // 背景颜色wc.lpszMenuName = NULL;           //菜单名wc.lpszClassName = "MyWndClass";  //WNDCLASS 名RegisterClass(&wc);hwnd = CreateWindow("MyWndClass",        //WNDCLASS 名"SDK_Application",   //window titleWS_OVERLAPPEDWINDOW, //window styleCW_USEDEFAULT,       //水平位置CW_USEDEFAULT,       //垂直位置CW_USEDEFAULT,       //初始化宽度CW_USEDEFAULT,       //初始化高度HWND_DESKTOP,        //父窗口句柄NULL,                //菜单句柄hInstance,           //应用程序的 实例 句柄NULL                 //window 创建数据);ShowWindow(hwnd, nShowCmd);UpdateWindow(hwnd);while (GetMessage(&msg, NULL, 0, 0)){TranslateMessage(&msg);DispatchMessage(&msg);}return msg.wParam;}LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{PAINTSTRUCT ps;HDC hdc;switch (message){case WM_PAINT:hdc = BeginPaint(hwnd, &ps);Ellipse(hdc, 0, 0, 200, 100);EndPaint(hwnd, &ps);return 0;case WM_DESTROY:PostQuitMessage(0);return 0;}return DefWindowProc(hwnd, message, wParam, lParam);
}

error LNK2019: 无法解析的外部符号 WinMain,该符号在函数 int __cdecl invoke_main(void)”中被引用相关推荐

  1. VS2015 error LNK2019 无法解析的外部符号 _WinMain@16,该符号在函数 int __cdecl invoke_main(void)

    前言 上一篇文章中,为了编译OpenCV的示例代码,然后搭建环境, 最后想直接运行示例demo,我在创建新工程的时候,直接创建了一个win32窗口项目,然后环境配置完成后,将opencv 的示例代码k ...

  2. 无法解析的外部符号 WinMain,该符号在函数 int __cdecl invoke_main(void) (?invoke_main@@YAHXZ) 中被引用

    无法解析的外部符号 WinMain,该符号在函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中被引用 (2)项目- ...

  3. error LNK2019: 无法解析的外部符号 XXXXXXXXX,该符号在函数XXX中被引用

    如:在调用ffmpeg接口时,出现如下错误: 1>decede.obj : error LNK2019: 无法解析的外部符号 "struct AVFrame * __cdecl av_ ...

  4. error LNK2019: 无法解析的外部符号,该符号在函数 _main 中被引用的解决方法

    vs通过C++编写输出为C函数形式的dll,在调用时出现如下问题,(编程环境:vs2013和OpenCV2.4.13) 出现此种错误,大多是找不到相应的库文件,但是检查自己的项目属性及链接器配置都没有 ...

  5. error LNK2019 无法解析的外部符号 _WinMain@16,该符号在函数 “int __cdecl invoke_main(void)“

    如果是windows程序,按以下配置 右键工程名, 打开属性,依次找到以下路径: ![在这里插入图片描述](https://img-blog.csdnimg.cn/683710cc43e44fdbbe ...

  6. MSVCRTD.lib(exe_main.obj) : error LNK2019: 无法解析的外部符号 _main,函数 “int __cdecl invoke_main(void)“ (?invo

    MSVCRTD.lib(exe_main.obj) : error LNK2019: 无法解析的外部符号 _main,函数 "int __cdecl invoke_main(void)&qu ...

  7. VS报错LNK2019 无法解析的外部符号 _main,函数 “int __cdecl invoke_main(void)“ (?invoke_main@@YAHXZ) 中引用了该符号的解决方法

    很多C初学者或者新人在使用VS编译器编写C代码运行时提示:严重性 代码 说明 项目 文件 行 禁止显示状态错误 LNK2019 无法解析的外部符号 _main,函数 "int __cdecl ...

  8. 错误 LNK2019 无法解析的外部符号 main,函数 “int __cdecl invoke_main(void)“ (?invoke_main@@YAHXZ)

    项目场景: 在C++调试OnnxRuntime推理模型过程中遇到错误 问题描述 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2019 无法解析的外部符号 main,函数 " ...

  9. 严重性代码说明项目文件行禁止显示状态错误LNK2019无法解析的外部符号 main,函数 “int __cdecl invoke_main(void)“ (? invoke_main@@YAHX

    今天在使用Visual Studio 2019编写爱心❤代码的时候出现了个报错 刚开始的时候就急了,由于我引用了其它去文件于是我就以为是什么bug, 于是我赶紧去查这个错误结果查了半天都没弄好 最后经 ...

最新文章

  1. 一些技术图书编写、推荐、出版人员需要自重
  2. mysql 唯一索引_MySQL学会用索引,让你数据库的查询速度起飞
  3. 生活问题 | 对华为畅玩手机5X进行升级
  4. BeautifulSoup_第二节
  5. 疾风之刃的最新服务器,《疾风之刃》服务器数据互通(合服)提前预览
  6. python 柱状图给特定的柱子上的_python 柱状图生成后少一个柱子,请指教!
  7. why different people have different digital response?
  8. 三国志战略版鸿蒙梦魇,三国志战略版:双控在手天下我有,洞察震慑枪已成吴国梦魇!...
  9. 超干货!当初我要是这么学习操作系统就好了(附带思维导图)
  10. 【一遍过!!!】1014 Waiting in Line (30 分)(题意+分析)
  11. OpenGL 人物走动源码
  12. layui向body添加html_layui 各项配置
  13. 【转载】C#中可使用string.Empty代表空字符
  14. mysql 批量删除_Python接口测试之对MySQL的增、删、改、查操作(五)
  15. 基于multisim的晶体管放大器设计
  16. VirtualBox 新建虚拟机
  17. java导出excel锁定状态_填报表导出excel后不可写的单元格处于锁定状态
  18. matlab弹簧振子的阻尼振动,matlab阻尼振动模拟
  19. 计算机网络:网络常用命令的使用及DNS层次查询、SMTP协议分析
  20. 在Excel里快速插入目录

热门文章

  1. 限定域文本语料的短语挖掘(Phrase Mining)
  2. Probe:Android线上OOM问题定位组件
  3. 想成长为一名实战型架构师?7大实战技能经验分享
  4. docker compose linux安装以及使用
  5. [Vuex系列] - Mutation的具体用法
  6. mybatis postgresql insert后返回自增id
  7. Trie可持久化Trie
  8. 第二百七十九节,MySQL数据库-pymysql模块操作数据库
  9. [转载]sql server 分布式查询
  10. mysql 序列号生成器 (自定义函数)