You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio 2022 CLR空项目出现LINK2001/LINK1120错误,求C++入口点

解决Visual Studio 2022 C++项目LINK2001/LINK1120入口点错误

先确认项目类型与子系统配置

C++程序的入口点和项目子系统强绑定,先做基础检查:

  • 右键项目 → 属性 → 配置属性 → 链接器 → 系统 → 子系统
    • 若为Windows (/SUBSYSTEM:WINDOWS):对应桌面应用,默认入口点是WinMain(非Unicode)或_tWinMain/wWinMain(Unicode)
    • 若为控制台 (/SUBSYSTEM:CONSOLE):对应控制台程序,默认入口点是main(非Unicode)或_tmain/wmain(Unicode)

手动指定入口点的正确值(仅当自动匹配失效时)

如果需要在「链接器>高级」里手动设置入口点,对应值如下:

  • Windows子系统:
    • 非Unicode项目:WinMainCRTStartup
    • Unicode项目:_tWinMainCRTStartup 或 wWinMainCRTStartup
  • 控制台子系统:
    • 非Unicode项目:mainCRTStartup
    • Unicode项目:_tmainCRTStartup 或 wmainCRTStartup

检查代码中的入口函数

确保代码里存在对应子系统的入口函数,比如Windows子系统的示例代码:

#include <windows.h>

// 非Unicode版本
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    // 浏览器初始化逻辑
    return 0;
}

// Unicode版本(需包含<tchar.h>)
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
    // 浏览器初始化逻辑
    return 0;
}

常见误区

  • 不要盲目修改入口点,优先保证子系统配置和代码中的入口函数匹配,手动指定是最后手段
  • 若为MFC项目,入口点由框架自动提供,无需自行编写,需确保项目类型为「MFC应用程序」且配置正确

内容的提问来源于stack exchange,提问作者user25910489

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 14:02:10