Windows Form 응용 프로그램에서 사용하려는 MFC/ATL 프로그램에 많은 양의 코드가 있습니다. 이 코드를 "변환"하여/clr을 사용하도록 컴파일하고 기본 클래스를 찾는 가장 쉬운 방법은 무엇입니까? CObject, CString, CFile 및 템플릿?MFC/ATL 코드를 Windows Form 응용 프로그램으로 변환
답변
많은 "변환"이 필요하지 않습니다. 단지/clr을 활성화하고 컴파일 할 수 있습니다. 빌드 오류는 있지만 엄청난 숫자는 아닙니다.
이것은 이 아니라이 가볍게 처리되어야한다는 결정입니다.
빌드 성능이 특히 연결, 많은 악화 : 당신은 /의 CLR 임계 값을 교차하면 당신은 몇 가지를 희생. C++/clr 프로젝트를 점진적으로 링크 할 수 없습니다.
.Exe 또는 .Dll에 추가 로딩 레이어가 추가됩니다. 특히 statics에서는 초기화 순서에주의해야합니다. 이것은 VS2005로 빤히 쳐다 보았지만 아직도 딸꾹질이 있습니다. 올바르게 언로드되지 않는/clr DLL 프로젝트가 있는데 그 이유를 파악할 수 없었습니다. 이러한 문제 중 하나의 증상은 디버그에서 메모리 누출 감지 dumpon 종료를 얻지 못한다는 것입니다.
프로젝트에 기능을 추가하면 관리 또는 기본 구현 중 하나를 선택할 수 있습니다. 프로젝트의 다른 곳에서 수행되는 작업을 위해 관리 작업을 수행하려면 이전 구현을 수정해야합니까?
관리되는 기본 임계 값을 초과하면 성능 및 디버깅 관련 사항이 있습니다.
예외 처리가 더욱 복잡해집니다.
전체 프로젝트에서/clr 스위치를 전환하는 대신 훨씬 더 목표를 둔 방법을 사용하는 것이 좋습니다. 대규모 라이브러리를 기본으로 유지하십시오. 혼합 모드/clr 부트 스트랩퍼/래퍼를 만듭니다. 이 "씬 프록시"는 네이티브 라이브러리의 안정성과 성능을 유지하면서 네이티브 라이브러리에 대한 액세스의 이점을 제공합니다.
네이티브 라이브러리에 대화 상자가 있거나 더 나쁜 SDI/MDI보기가있는 경우 (here 참조) 디스플레이를 연결하는 것이 까다로울 수 있습니다. 그러나 그만한 가치가있을 것입니다.
VC++ .net, 내가 잘못 생각하지 않는다면 새로운 버전의 MFC가 있습니다. 프로젝트를 VC.net 프로젝트로 변환 한 다음 클래스를 관리되는 코드로 천천히 변환하십시오. 이것은 모든 것을 재 작성하는 거대한 점프보다는 모든 것을 천천히 재 설계하는 변경을 제공합니다. Btw, MVC 디자인 패턴으로 내부 작업에서 인터페이스를 분리하지 않았다면.
- 1. Informix 'Perform'화면을 Windows 기반 응용 프로그램으로 변환
- 2. ASP.NET 응용 프로그램을 Silverlight 응용 프로그램으로 변환
- 3. Java Swing을 웹 기반 응용 프로그램으로 변환
- 4. Windows Form 다른 응용 프로그램에 게시
- 5. Windows Form From Text Form
- 6. Windows Form 응용 프로그램에서 Asp.Net 웹 서비스 응용 프로그램으로 데이터를 보내는 방법
- 7. .NET 응용 프로그램이 Windows Form 또는 콘솔 응용 프로그램으로 실행 중
- 8. windows form application
- 9. Java 클래스를 vb 2008 응용 프로그램으로 변환
- 10. VS2008 웹 사이트를 웹 응용 프로그램으로 변환
- 11. Windows Form 응용 프로그램의 WCF 호스트
- 12. .NET 응용 프로그램을 테스트 구동 응용 프로그램으로 변환
- 13. 웹 사이트에서 Windows 응용 프로그램으로 파일 보내기
- 14. aspx에서 C# Windows 응용 프로그램으로 데이터 보내기
- 15. Windows CE 플랫폼에서 Windows Form 응용 프로그램을 실행할 수 있습니까?
- 16. 문자열 표가있는 Windows Form
- 17. DateTime Windows Form 응용 프로그램에서 표시
- 18. Windows Form 응용 프로그램 예약 된 작업으로
- 19. C++ Windows Form 응용 프로그램 MySQL 연결
- 20. ASP.NET 양식 안에 Windows Form 응용 프로그램?
- 21. 작은 Windows Form Chat 응용 프로그램 아이디어?
- 22. C# windows form app
- 23. Flex 3 - Flex 웹 응용 프로그램을 Air 응용 프로그램으로 변환
- 24. ASP.NET 웹 폼 응용 프로그램을 데스크톱 응용 프로그램으로 변환
- 25. VB - 웹 응용 프로그램을 웹 응용 프로그램으로 변환
- 26. ASP.NET 웹 응용 프로그램을 리프트 응용 프로그램으로 변환
- 27. iPad 응용 프로그램을 iPhone 응용 프로그램으로 변환 하시겠습니까?
- 28. iPhone 응용 프로그램을 Xcode 4의 Universal 응용 프로그램으로 변환
- 29. 웹 응용 프로그램을 웹 응용 프로그램으로 변환 (사용자 정의)
- 30. HealthVault 응용 프로그램을 두꺼운 Windows 양식 응용 프로그램으로 작성하거나 웹 응용 프로그램으로 작성해야합니까?
대형 프로젝트에서/clr 플래그를 혼란에 빠뜨리면 나도 어쩔 수 없습니다. 네이티브 코드의 대부분을 DLL로 분리하는 것이 최선의 방법이라는 데 동의합니다. – Nick