У меня есть программа C++, которую я запускаю, используя borland 5.02, это программа GUI. Мне нужно проанализировать программу и ее поток, но проблема в том, что я не могу найти события элемента управления, и я не могу найти его в Интернете, поскольку получаю информацию о других версиях C++ (FYI, Я знаю, что это не V C++). Код моей кнопки выглядит так:
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?
PS: Поскольку я программист на С#.NET и всегда использовал Visual Studio, поэтому я считаю, что Borland довольно сложно использовать.
BC++ 5.02 - из диких времен, предшествующих даже стандарту 1998 C++; доступное подмножество функций на удивление способно, но есть много синтаксических особенностей. Можно написать код, совместимый с текущими компиляторами, а также с такими старыми, как BC++ 5.02 (или даже BC++ 3.1), но это непросто.
Если вам нужно настроить таргетинг на 16-битные платформы, вам может быть лучше использовать бесплатные/недорогие компиляторы Digital Mars C++ (ранее Zortech/Symantec C++) или Open Watcom C++.
Если вы этого не сделаете, есть много простых вариантов.
Dev C++ (gcc 4.8.2/MinGW64-TDM) очень приятен, но если вам нужно сделать графический интерфейс, тогда вам будет лучше попробовать получить бесплатную версию Borland C++ Builder (теперь продукт Embarcadero), Visual C++ Express свободен и почти так же хорош, как gcc
и CLANG; его преимущество заключается в том, что он может напрямую взаимодействовать с.NET, то есть вы можете рисовать интерфейсы с Visual Basic или одним из его преемников (например, С#) и писать сложный хрустящий код в C++, который компилируется в сборку.NET.
Структура, используемая BC++ 4 и 5, называется OWL (Object Windows Library); он задокументирован в owl50.hlp
который должен находиться в подкаталоге help вашей установки BC++. Раздел "О сообщениях и очередях сообщений" дает хороший обзор о потоке управления и маршрутизации сообщений. Структура сопоставляет большинство сообщений с функциями-членами таких классов, как TWindow
и т.д., Так что сообщения с TWindow
окном редко видны. Определяемые пользователем идентификаторы, упомянутые в заголовках и файлах ресурсов, должны повторяться в макросочетаниях, которые объявляют таблицы ответов, что должно позволить вам связывать элементы диалога с функциями-членами соответствующих классов. Просто притирайся и следуй за носом.
Если программа, которую вы анализируете, не была написана для BC++/OWL, тогда вы можете столкнуться с кодом MFC (поскольку BC++ 5.x поставляется с копией классов Microsoft Foundation) или необработанным кодом Windows API с помощью сообщений, процедуры окна/диалога и т.д.
grep
- или какой-либо другой способный инструмент поиска текста - в любом случае вы ID_RUN_BITMAP
в интересные места, если вы ищете магические идентификаторы из файла RC, такого как ID_RUN_BITMAP
.