我有一个C ++程序,我使用的是borland 5.02,它是一个GUI程序。 我需要分析程序及其流程,但问题是我无法找到控件的事件,我无法在互联网上搜索它,因为我正在获取有关其他C ++版本的信息(仅供参考,我知道它不是VC ++)。 我的按钮代码如下所示:
CONTROL "Output Reports", ID_RUN_BITMAP, "BUTTON", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 252, 204, 51, 9
它位于projectname.rc文件中
现在,我的问题是:
他们的任何其他IDE是否运行相同的代码,这将比Borland 5.02更有用?
P.S。:由于我是C#.NET程序员并且一直使用Visual Studio,因此我发现Borland很难使用。
答案 0 :(得分:3)
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 ++安装的help子目录中。 "关于消息和消息队列"提供有关控制流和消息路由的良好概述。该框架将大多数消息映射到类TWindow
等类的成员函数,因此很少看到原始窗口消息。标头和资源文件中提到的用户定义的ID应该在声明响应表的宏调用中重新出现,这应该允许您将对话框项与相应类的成员函数相关联。只是稍微瞎一下,跟着你的鼻子。
如果您正在分析的程序不是为BC ++ / OWL编写的,那么您可能会面对MFC代码(因为BC ++ 5.x附带了Microsoft基础类的副本)或原始Windows API代码和消息泵,窗口/对话程序等。
grep
- 或其他一些有能力的文本搜索工具 - 如果您从RC文件中搜索ID_RUN_BITMAP
中的魔法ID,则应该带您到任何情况下的有趣位置。