2010-01-07 11 views
5

¿Podemos 'fácilmente' (de alguna manera) compilar el proyecto C++ Builder en VisualStudio 2005 C++. Nuevo en C++ estoy buscando referencias en ese asunto (CBuilder vs VS). Gracias.Delphi C++ Builder a VisualStudio

Respuesta

4

Bueno, realmente no. Es cierto que las partes "puras" de C++ deben compilarse, tiene dos grandes problemas para tratar:

Primero, Borland hizo algunas extensiones propietarias de C++ para hacerlo compatible con sus productos Delphi. No recuerdo lo que son improvisados, pero podrían ser un problema dependiendo de lo que estés haciendo.

Pero el problema principal es el VCL, la biblioteca principal de GUI. Si está desarrollando en C++ Builder, el 99% de las veces está usando el VCL y lo usa bastante. AFAIK, el VCL no se compilará bajo ningún compilador de Microsoft por muchas razones, incluida la que ya mencioné.

Básicamente, estás atascado portando a .NET (o MFC o lo que sea si eres un masoquista) si quieres que esto funcione en VisualStudio. Un punto brillante aquí es que muchos desarrolladores de componentes de terceros han adoptado .NET, por lo que es posible que no tenga que hacer tanto trabajo para portar el proyecto como cree.

0

Bueno, al final todo es C++, por lo que puede incluir sus archivos C++ Builder en una solución VS2005 y vincular las bibliotecas. VS2005 prefiere ver MFC o .NET que todas las clases Turbo de C++ Builder, sin dudas. Importar recursos también puede ser un problema.

Estaría interesado en otras respuestas aquí también. Es posible que tengamos que viajar por este mismo camino en nuestro proyecto.

4

Si utiliza las clases VCL no podrá compilar su código en Visual C++. El VCL presenta algunas estructuras de lenguaje nuevas para el lenguaje C++, para hacerlo compatible con Delphi, __property, etc. E incluso si puede mover el código VCL a alguna biblioteca externa vinculada dinámicamente, todavía habrá muchos problemas para llamar a las funciones VCL. Esto se debe a que la convención de llamadas de Borland __fastcall difiere de la mayoría de las otras implementaciones de compilador. La versión de Borland transmite 3 argumentos a los registros, mientras que la mayoría de los otros compiladores usan 2.

En general, puede haber muchos problemas con la implementación de compiladores diferentes, en particular si usa el VCL o la convención de llamadas __fastcall. Lo que ocurre con C++ Builder es que está diseñado para ser compatible con Delphi y VCL, y si bien el VCL es un marco excelente para los programas RAD y GUI, agrega el costo de una menor compatibilidad con otros compiladores.

+0

Gracias ... y este es el caso, mi proyecto incluye muchas clases básicas de vcl. – volvox

Cuestiones relacionadas