铭凡 发表于 2023-9-4 22:41:47

第一个windows窗口程序无法编译

这是小甲鱼老师当年的考古视频:https://fishc.com.cn/thread-47361-1-1.html

然后老师让我们手敲代码,我敲在VS2017里边,编译出错

我还以为是我打错了,复制这个链接里边的依然不好使

报错提示
1>------ 已启动全部重新生成: 项目: 窗口, 配置: Debug Win32 ------
1>main.cpp
1>MSVCRTD.lib(exe_main.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中被引用
1>D:\Desktop\Others\Programming\Windows编程\Windows程序设计(SDK)\自己学习\2023.09.04 第03讲 窗口\窗口\Debug\窗口.exe : fatal error LNK1120: 1 个无法解析的外部命令
1>已完成生成项目“窗口.vcxproj”的操作 - 失败。
========== 全部重新生成: 成功 0 个,失败 1 个,跳过 0 个 ==========

请问该怎么解决?

isdkz 发表于 2023-9-4 22:42:03

这个错误是由于缺少主函数(main)引起的。在Windows窗口程序中,主函数的名称应为WinMain而不是main。

为了解决这个问题,你需要进行以下步骤:

1. 打开你的项目,并找到名为main.cpp的文件。
2. 打开这个文件,并将主函数的名称从main改为WinMain。
3. 确保WinMain函数的参数列表正确。它应该是这样的:int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)。
4. 重新编译你的项目。

这样,你的程序应该能够成功编译和运行了。如果你仍然遇到问题,请检查你的代码是否有其他错误或缺少必要的库文件。

铭凡 发表于 2023-9-4 22:45:53

isdkz 发表于 2023-9-4 22:42
这个错误是由于缺少主函数(main)引起的。在Windows窗口程序中,主函数的名称应为WinMain而不是main。

...

首先,我的代码含有winmain,其次把iCmdShow改过来改成nCmdShow也不行

ba21 发表于 2023-9-4 23:09:11

回头再去看看视频 001第一个程序。其中讲到了怎么创建win32空白程序,vs版本不一样可能有些差异。
https://blog.csdn.net/Scarlett2025/article/details/121547744

铭凡 发表于 2023-9-4 23:37:10

ba21 发表于 2023-9-4 23:09
回头再去看看视频 001第一个程序。其中讲到了怎么创建win32空白程序,vs版本不一样可能有些差异。
https:/ ...

还是老兄靠谱,哈哈。这种时候GPT就不行了。感谢感谢
页: [1]
查看完整版本: 第一个windows窗口程序无法编译