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

基于空白C++ Windows模板创建D3D12项目遇LNK2019错误求助

解决LNK2019: 未解析的外部符号main问题(Windows D3D12项目)

你的链接错误核心原因是项目入口点配置不匹配,以下是具体排查和解决步骤:

1. 修正项目子系统设置

Visual Studio中,右键项目 → 属性 → 链接器 → 系统 → 子系统,确保选择Windows (/SUBSYSTEM:WINDOWS)。

  • 若选的是Console (/SUBSYSTEM:CONSOLE),链接器会默认寻找main函数作为入口,而你的代码用的是Windows程序专属的WinMain,因此触发未解析符号错误。

2. 强制指定入口点(可选)

如果子系统设置正确仍报错,可在代码开头添加编译指令,强制链接器使用WinMain入口:

#pragma comment(linker, "/ENTRY:WinMainCRTStartup")

3. 检查预处理器宏定义

进入项目属性 → C/C++ → 预处理器 → 预处理器定义:

  • 移除_CONSOLE宏(如果存在)
  • 添加_WINDOWS宏(确保编译器识别这是Windows应用而非控制台应用)

额外代码问题修正

你的代码还有两个影响运行的问题:

  1. 缺少窗口显示逻辑:创建窗口后需调用ShowWindow和UpdateWindow才能显示:
    if (inVT.has_value())
    {
        HWND hWnd = inVT.value();
        ShowWindow(hWnd, nCmdShow);
        UpdateWindow(hWnd);
        std::cout << hWnd;
    }
    
  2. 无效的死循环:替换成标准Windows消息循环,否则窗口无法响应消息:
    MSG msg = {};
    while (GetMessage(&msg, nullptr, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return (int)msg.wParam;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 19:08:10