【问题标题】:Create Win32 application in C++Builder XE5在 C++Builder XE5 中创建 Win32 应用程序
【发布时间】:2015-05-30 18:19:02
【问题描述】:

在旧版本的 Borland C++Builder 中,您使用控制台向导来启动 Win32 程序。现在从 XE5 中消失了!我该如何开始?

【问题讨论】:

  • 呃,文件 |新...

标签: winapi c++builder c++builder-xe5


【解决方案1】:

您要查找的向导位于:

文件 > 新建 > 其他 ... > C++Builder 项目 > 控制台应用程序

但是,自 XE2 以来,向导对话框已损坏,并且在最新版本(撰写本文时为 XE7)中仍未修复。

  1. 对话框有一个下拉列表来选择“目标框架”。如果将此设置为“无”,您可能会在链接时收到“未解决的外部”错误。所以你可能不得不选择“Visual Component Library”或“FireMonkey”。

  2. 对话框有一个“控制台应用程序”复选框,默认情况下会选中该复选框并且禁止用户交互。

    因此,您只能创建使用 main() 入口点的控制台应用程序,而不是使用 WinMain() 入口点的 Win32 应用程序。幸运的是,注册表中有一个解决方法:

    HKEY_CURRENT_USER\Software\Embarcadero\BDS\<version>\Repository\New Console Application
    
    (REG_SZ) "ConsoleApp" = "True" or "False"
    

    "ConsoleApp" 设置为"True""False" 以指定复选框的默认状态。通过将其设置为"False",您可以创建一个使用WinMain() 入口点的控制台应用程序。

另外,使用WinMain() 入口点创建 Win32 应用程序的另一种方法是创建一个新的 VCL 表单应用程序并从项目中删除默认生成的 MainForm 并从默认值中删除任何您不想要的代码生成WinMain()

Embarcadero 知道这些错误(我已私下与他们讨论过,他们已确认对话框代码中存在一些导致此问题的奇怪之处)。我没有看到他们的任何 QualityCentral 票证,因此我现在提交了 QualityPortal 票证。

RSP-10796 C++ Console Application wizard is broken

希望他们最终会得到修复。

【讨论】:

  • “Alternatively”方式似乎简单多了。如果某些东西没有控制台窗口,那它就不是真正的控制台应用程序
  • 是的,“替代”方法是我通常的做法,但代价是必须链接到 VCL,这并不总是可取的。在过去,能够创建没有这种依赖关系的普通 Win32 应用程序很有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-28
  • 1970-01-01
  • 1970-01-01
  • 2012-05-17
相关资源
最近更新 更多