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

复制的C++游戏代码在Visual Studio新项目中运行失败如何解决

问题排查结果

你的报错根源是Visual Studio新建项目默认启用Unicode字符集,和教程作者的项目配置不一致导致的字符串类型不匹配,和VS版本、外部依赖文件差异无关。

两种解决方法:

方法1:修改项目配置(无需改代码,和教程配置对齐)

  • 右键解决方案资源管理器中的你的项目名称,选择「属性」
  • 依次展开「配置属性」→「高级」,找到「字符集」选项
  • 将默认的「使用 Unicode 字符集」修改为「使用多字节字符集」,保存配置后重新编译即可正常运行。

方法2:修改代码适配Unicode标准(更推荐,符合Win32开发规范)

只需要修改两处报错位置的代码,给字符串添加L前缀标记为宽字符:

// 原报错的lpszClassName赋值行修改为
window_class.lpszClassName = L"Game Window Class";

// 原报错的CreateWindow调用行修改为
HWND window = CreateWindow(window_class.lpszClassName, L"My First Game!", WS_OVERLAPPEDWINDOW | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, 1280, 720, 0, 0, hInstance, 0);

修改完成后直接编译即可运行。

原理说明:Unicode模式下Win32 API的所有字符串入参都要求是wchar_t*宽字符类型,直接传入普通char*类型的字符串就会触发类型不匹配报错。教程作者的项目提前修改为多字节字符集,所以相同代码在他的项目中可以正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:45:07