2010-01-07 3 views
5

C++ Builder 프로젝트를 VisualStudio 2005 C++로 '쉽게'(어떤 방법 으로든) 컴파일 할 수 있습니까? 새로운 C++에서 그 문제에 대한 참조를 찾고 있습니다 (CBuilder 대 VS). 감사.Delphi C++ Builder to Visual Studio

답변

4

글쎄, 그렇지 않습니다. "순수한"C++ 파트를 컴파일해야하는 경우 사실상 처리해야 할 두 가지 큰 문제가 있습니다.

먼저 Borland는 Delphi 제품과 호환되도록 C++에 대한 독점적 인 확장을 수행했습니다. 나는 이것들이 무엇인지를 기억하지 못하지만, 당신이하는 일에 따라 문제가 될 수 있습니다.

하지만 주된 문제는 VCL, 기본 GUI 라이브러리입니다. C++ Builder로 개발하는 경우 VCL을 사용하는 시간의 99 %를 사용하고이를 상당히 많이 사용합니다. AFAIK, VCL은 이미 언급 한 것을 포함하여 여러 가지 이유로 모든 Microsoft 컴파일러에서 컴파일되지 않습니다.

기본적으로 VisualStudio에서이 기능을 사용하려면 .NET (또는 MFC 등 무엇이든간에 masochist)으로 포팅해야합니다. 여기서 한가지 밝은 점은 많은 타사 구성 요소 개발자가 .NET을 채택했기 때문에 생각한대로 프로젝트를 이식하는 데 많은 노력을 기울이지 않아도된다는 것입니다.

0

결국 C++ Builder 파일을 VS2005 솔루션에 포함하고 라이브러리를 연결할 수 있습니다. VS2005는 C의 모든 Turbo 클래스보다 MFC 또는 .NET을 많이 사용합니다. ++ Builder, 의심의 여지가 없습니다. 리소스를 가져 오는 것도 문제가 될 수 있습니다.

다른 답변도 여기에 있습니다. 프로젝트에서이 같은 경로를 따라 이동해야 할 수도 있습니다.

4

VCL 클래스를 사용하는 경우 Visual C++에서 코드를 컴파일 할 수 없습니다. VCL은 C++ 언어에 몇 가지 새로운 언어 구조를 도입하여 델파이, __property 등과 호환됩니다. VCL 코드를 외부 동적으로 링크 된 라이브러리로 옮길 수있는 경우에도 여전히 VCL 함수를 호출하는 데 많은 문제가 있습니다. Borland __fastcall 호출 규칙이 다른 대부분의 컴파일러 구현과 다르기 때문입니다. Borland 버전은 레지스터에 3 개의 인수를 전달하지만 대부분의 다른 컴파일러는 2를 사용합니다.

특히 VCL 또는 __fastcall 호출 규칙을 사용하는 경우 컴파일러 구현에 따라 많은 문제가 발생할 수 있습니다. C++ Builder는 Delphi 및 VCL과 호환 될 수있는 빌드이며 VCL은 RAD 및 GUI 프로그램을위한 훌륭한 프레임 워크이지만 다른 컴파일러와의 호환성이 낮은 비용이 추가됩니다.

+0

감사합니다 ...이 경우, 내 프로젝트에는 많은 핵심 vcl 클래스가 포함됩니다. – volvox

관련 문제