【问题标题】:C++: program version?C++:程序版本?
【发布时间】:2014-11-15 10:42:51
【问题描述】:

我有一个使用 borland 5.02 运行的 C++ 程序,它是一个 GUI 程序。 我需要分析程序及其流程,但问题是我无法找到控件的事件,并且我无法在互联网上搜索它,因为我正在获取有关其他 C++ 版本的信息(仅供参考,我知道它不是 VC++)。 我的按钮代码如下所示:

CONTROL "Output Reports", ID_RUN_BITMAP, "BUTTON", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 252, 204, 51, 9

在 projectname.rc 文件中

现在,我的问题是:

  1. 我使用的是哪个 C++ 版本或变体?
  2. 我想知道这一点,以便我可以搜索它的教程以找到它的事件并正确理解代码。

他们是否有任何其他 IDE 可以运行比 Borland 5.02 更有帮助的相同代码?

P.S.:由于我是一名 C# .NET 程序员并且一直使用 Visual Studio,因此我发现 Borland 很难使用。

【问题讨论】:

标签: c++ events c++11 controls borland-c++


【解决方案1】:

BC++ 5.02 甚至早于 1998 年的 C++ 标准。可用的功能子集非常强大,但有许多语法特性。可以编写与当前编译器以及像 BC++ 5.02(甚至 BC++ 3.1)这样的老版本兼容的代码,但这并不容易。

如果您需要针对 16 位平台,那么最好使用免费/便宜的 Digital Mars C++ compilers(以前称为 Zortech/Symantec C++)或 Open Watcom C++

如果您不这样做,那么还有很多更简单的选择。

Dev C++ (gcc 4.8.2/MinGW64-TDM) 非常好,但是如果您需要进行 GUI 开发,那么您最好尝试获得 Borland C++ Builder 的免费赠品版本(现在是 Embarcadero 产品) . Visual C++ Express 是免费的,几乎与gcc 和 CLANG 一样好;它的优点是它可以直接与 .NET 交互,这意味着您可以使用 Visual Basic 或其后继者之一(例如 C#)绘制接口,并用 C++ 编写可编译为 .NET 程序集的复杂、易懂的代码。

BC++ 4和5使用的框架叫做OWL(Object Windows Library);它记录在owl50.hlp 中,它应该在您的 BC++ 安装的帮助子目录中。 “关于消息和消息队列”一节很好地概述了控制流和消息路由。该框架将大多数消息映射到TWindow 等类的成员函数,因此很少看到原始窗口消息。头文件和资源文件中提到的用户定义的 id 应该在声明响应表的宏调用中重新出现,这应该允许您将对话框项与相应类的成员函数相关联。只需 grep 一下,然后跟着你的鼻子走。

如果您分析的程序不是为 BC++/OWL 编写的,那么您可能面临 MFC 代码(因为 BC++ 5.x 附带了 Microsoft Foundation Classes 的副本)或带有消息泵、窗口的原始 Windows API 代码/对话程序等

grep - 或其他一些功能强大的文本搜索工具 - 如果您从 RC 文件(如ID_RUN_BITMAP)中搜索魔术 ID,无论如何都应该带您到有趣的地方。

【讨论】:

    猜你喜欢
    • 2013-05-28
    • 1970-01-01
    • 2016-05-01
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    • 2012-10-19
    • 2013-03-15
    • 2016-11-26
    相关资源
    最近更新 更多