Delphi C ++ Builder для VisualStudio - PullRequest
       9

Delphi C ++ Builder для VisualStudio

5 голосов
/ 07 января 2010

Можем ли мы «легко» (каким-то образом) скомпилировать проект C ++ Builder в VisualStudio 2005 C ++. Новое в C ++ Я ищу ссылки в этом вопросе (CBuilder против VS). Благодарю.

Ответы [ 3 ]

4 голосов
/ 07 января 2010

Если вы используете классы VCL, вы не сможете скомпилировать свой код в Visual C ++. VCL вводит некоторые новые языковые структуры в язык C ++, чтобы сделать его совместимым с delphi, __property и т. Д. И даже если вы можете переместить код VCL во некоторую внешнюю динамически связанную библиотеку, все равно будет много проблем с вызовом VCL функции. Это потому, что соглашение о вызовах Borland __fastcall отличается от большинства других его реализаций. Версия Borland передает 3 аргумента в регистры, в то время как большинство других компиляторов используют 2.

В целом может возникнуть много проблем из-за реализации различных компиляторов, в частности, если вы используете VCL или __fastcall соглашение о вызовах. Особенность C ++ Builder заключается в том, что он создан для совместимости с Delphi и VCL, и, хотя VCL является отличной средой для программ RAD и GUI, он добавляет стоимость меньшей совместимости с другими компиляторами.

4 голосов
/ 07 января 2010

Ну, не совсем. Это правда, что «чистые» части C ++ должны компилироваться, у вас есть две очень большие проблемы, с которыми нужно иметь дело:

Во-первых, Borland сделал несколько собственных расширений для C ++, чтобы сделать его совместимым с их продуктами Delphi. Я не помню, что это за дело, но они могут быть проблемой в зависимости от того, что вы делаете.

Но главная проблема - это VCL, основная библиотека GUI. Если вы разрабатываете в C ++ Builder, то в 99% случаев вы используете VCL и используете его довольно интенсивно. AFAIK, VCL не будет компилироваться ни под каким компилятором Microsoft по многим причинам, включая ту, что я уже упоминал.

Так что, по сути, вы застряли в портировании на .NET (или MFC или что-то еще, если вы мазохист), если вы хотите, чтобы это работало под VisualStudio. Одним из ярких моментов здесь является то, что многие сторонние разработчики компонентов используют .NET, поэтому вам, возможно, не придется проделывать столько работы, сколько вы думаете.

0 голосов
/ 07 января 2010

Ну, в конце концов, это все C ++, так что вы можете включить свои файлы C ++ Builder в решение VS2005 и связать библиотеки в нем. VS2005 будет скорее видеть MFC или .NET, чем все классы Turbo из C + + Строитель, без сомнения. Импорт ресурсов также может быть проблемой.

Я бы тоже заинтересовался другими ответами. Возможно, нам понадобится пройти этот же путь в нашем проекте.

...