Проблема компиляции C ++ Builder - PullRequest
1 голос
/ 18 марта 2010

Это дополнительный вопрос к этому вопросу, который я задавал ранее. Кстати, Нил Баттерворт за вашу помощь Ошибка компиляции c ++ в сборщике c ++


Краткий обзор. В настоящее время я разрабатываю программу C ++ для университета, я использовал Netbeans 6.8 на своем персональном компьютере (Mac), и все это прекрасно работает. Когда я пробовал их на своем разделе Windows или на университетских ПК с использованием C ++ Builder 2009 и 2010, я получал несколько ошибок компиляции, которые были устранены путем добавления следующего заголовочного файла:

#include <string>

Однако теперь программа компилируется, но не запускается, просто пустая консоль. И я получаю следующее в журнале событий компилятора:

Thread Start: Thread ID: 2024. Process Project1.exe (3280)
Process Start: C:\Users\Carlos\Documents\RAD Studio\Projects\Debug\Project1.exe. Base Address: $00400000. Process Project1.exe (3280)
Module Load: Project1.exe. Has Debug Info. Base Address: $00400000. Process Project1.exe (3280)
Module Load: ntdll.dll. No Debug Info. Base Address: $77E80000. Process Project1.exe (3280)
Module Load: KERNEL32.dll. No Debug Info. Base Address: $771C0000. Process Project1.exe (3280)
Module Load: KERNELBASE.dll. No Debug Info. Base Address: $75FE0000. Process Project1.exe (3280)
Module Load: cc32100.dll. No Debug Info. Base Address: $32A00000. Process Project1.exe (3280)
Module Load: USER32.dll. No Debug Info. Base Address: $77980000. Process Project1.exe (3280)
Module Load: GDI32.dll. No Debug Info. Base Address: $75F50000. Process Project1.exe (3280)
Module Load: LPK.dll. No Debug Info. Base Address: $75AB0000. Process Project1.exe (3280)
Module Load: USP10.dll. No Debug Info. Base Address: $76030000. Process Project1.exe (3280)
Module Load: msvcrt.dll. No Debug Info. Base Address: $776A0000. Process Project1.exe (3280)
Module Load: ADVAPI32.dll. No Debug Info. Base Address: $777D0000. Process Project1.exe (3280)
Module Load: SECHOST.dll. No Debug Info. Base Address: $77960000. Process Project1.exe (3280)
Module Load: RPCRT4.dll. No Debug Info. Base Address: $762F0000. Process Project1.exe (3280)
Module Load: SspiCli.dll. No Debug Info. Base Address: $759F0000. Process Project1.exe (3280)
Module Load: CRYPTBASE.dll. No Debug Info. Base Address: $759E0000. Process Project1.exe (3280)
Module Load: IMM32.dll. No Debug Info. Base Address: $763F0000. Process Project1.exe (3280)
Module Load: MSCTF.dll. No Debug Info. Base Address: $75AD0000. Process Project1.exe (3280)

Я был бы очень признателен за любую помощь или идеи о том, как решить эту проблему.

P.S: В случае, если кто-то задается вопросом, почему я придерживаюсь C ++ Builder, это потому, что это профессора IDE используют для оценки наших заданий.

1 Ответ

1 голос
/ 18 марта 2010

Я предполагаю, что у вас включена отладка, и вы даже не можете войти в main () с помощью отладчика (нажав [F7] или [F8]), как будто программа падает до того, как она попадет в основную. Это может быть проблемой, если у вас есть глобальный (или статический) экземпляр объекта, и код конструктора объекта дает сбой.

Если у вас есть глобальный объект, т.е.

MyClass object;
int main()
{ .... };

Попробуйте динамически выделить его в main ().

MyClass *object = 0;
int main()
{ object = new MyClass;
....
};
...