2009-06-17 6 views
1

Borland C++ 코드를 C#, 으로 마이그레이션해야하는 프로젝트를 실행해야하는데 코드의 원활한 마이그레이션을 위해 따라야 할 중요한 단계는 무엇입니까? 및 모든 종류의 팁과 요령을 제안하십시오.C#으로 Borland C++ 마이그레이션하기

답변

3

사실은 완전히 다시 작성한다는 의미입니다. 내가 너라면 C# 대신 CLI/CLI를 사용해 보겠다. 이렇게하면 코드를 실수로 점진적으로 다시 작성하여 관리 코드로 변환 할 수 있습니다. 당신은 C# 또는 C++/CLI로 마이그레이션 어떠했는지

것들, 고려해야 할 :

  1. 깨끗한 인터페이스 모듈에 소프트웨어를 분할 (n 계층 아키텍처를 사용하여, MVC, ...). 각 파티션이 COM 개체 인 경우 .NET에서 COM 개체를 사용하고 파트 만 마이그레이션 할 수도 있습니다.
  2. 당신이 포인터를 사용하여 위치를 결정하고 RAII-개체를 사용하여 위치를
  3. 확인 ++ C에서이 코드를 변환하는 방법을 확인하고 찾기가 의존하는 라이브러리를 확인하고 당신이 .NET에 장착 할 수있는 방법을 확인 .NET에서 동일한 결과를 얻는 방법.

어떤 유형의 프로그램을 마이그레이션 할 것인지 그리고 어떤 이유인지 알 수 없기 때문에 자세한 조언을 드릴 수 없습니다.

+0

고맙습니다 Tobias ... 방광 스캔을위한 이미지 처리 프로젝트 및 C#에서 전체 코드를 다시 작성하는 클라이언트 아이디어 C++/CLI는 더 나은 옵션으로 보입니다 –

+0

그런 다음 C#에서 GUI를 수행하고 가능한 많은 코드를 재사용하는 C++ \ CLI. 이렇게하면 빠르게 작동하는 응용 프로그램을 얻을 수 있습니다. 그런 다음 다른 부분을 관리되는 코드로 변형 할 수 있습니다. Borland를 사용하면 Borland-Controls를 사용하고 Windows는 사용하지 않기 때문에 GUI를 다시 작성해야합니다. –

1

실제로 코드를 마이그레이션하지는 않습니까? 그렇습니다. 당신이하는 일은 근본적으로 언어 a (이 경우 C++)가 언어 b (C#)로 존재하는 시스템을 다시 작성하는 것입니다. 이 두 언어는 쉽게 기계적인 변환을 용이하게하는 공통점이 없습니다 (C# < -> 자바는 기계적으로 번역하기가 훨씬 쉽습니다). 그리고 C++ 코드가 얼마나 현대적인지에 따라 일부 이디엄을 번역하지 못할 수도 있습니다 직접.

합리적인 규모의 프로젝트에 대한 나의 접근 방식은 텍스트를 쉽게 처리 할 수있는 언어로 "크로스 컴파일러"를 작성하는 것입니다 (전회 루비를 사용했습니다). 이 교차 컴파일러는 코드의 약 80 %를 대상 언어에서 거의 편집 가능한 것으로 기계적으로 변환 할 수 있어야합니다. 또한 기존 코드를 가져 와서 C#에서 기능적으로 동일한 코드를 작성해야하기 때문에 프로그래머에게 많은 관심을 필요로하는 코드 영역을 식별 할 수 있습니다. 이 번역 도구의 경우 헤더 파일과 구현 파일에서 필요한 코드 비트를 함께 가져올 수있는 코드를 작성해야 함을 잊지 마십시오. C++ 코드가 얼마나 잘 조직화되어 있는가에 따라 이것은 사소한 작업입니다.

1

.NET으로 이동하려는 경우 C++/CLI을 사용해보십시오. C#으로 옮기고 싶다면 자동화 된 마이그레이션 경로를 사용하지 말고 C++/CLI로 옮긴 후 C#에서 새로운 개발을 수행하고 기존 코드를 C++에서 C#으로 옮길 계획을 세우십시오. 시간이 지남에 따라 변경된 사항을 검증하는 강력한 테스트 환경.

그러나 big-bang 마이그레이션을 수행하기 만하면 C++/CLI로 포팅하여 관리되는 어셈블리를 만들고 disassmble-IL-to-C# 도구 중 하나를 사용하여 프로세스를 자동화 할 수 있습니다. 나는 그것을하는 것에 강하게 반대한다 - 그러나 나의 것이 아니라 당신의 시간과 프로젝트이다.

관련 문제