나는 C++/CLI로 작성된 라이브러리를 가지고 있는데 이것을 열고 싶습니다. 가능한 한 크로스 플랫폼이되고 다른 언어 (Java, Python 등)에서 사용할 수 있도록 바인딩을 작성할 수 있기를 바랍니다. 이를 위해 라이브러리는 최대한의 유연성을 위해 일반 C++로되어 있어야합니다. 논리적 인 구조가 이미 있다고 생각합니다. 표준 C++ 라이브러리에서 사용하는. NET 라이브러리를 대체해야합니다. 이것은 잘못된 생각입니까? 전환 할 때 무엇을주의해야합니까?C++/CLI에서 C++로 변환 할 때의 주의점
0
A
답변
3
그것은 더 문제가 될 수 있습니다. 여기에 당신이 갈 수 있습니다 :
- 가비지 수집 C에서 + +입니다. 이것은 큰 것입니다. 이를 위해서는 개조 할 때 도서관의 재 설계가 필요할 수 있습니다. 적어도 C++ tr1이나 boost 라이브러리를 사용하고 있다면 shared_ptr을 사용하여 그곳으로 갈 수 있지만 중요한 근본적인 차이점이 있습니다. 예를 들어 순환 종속성에주의해야합니다. 또한 디버거에서 특정 지원없이 디버깅을 어렵게 만듭니다.
- C++ stl 또는 표준 라이브러리에 해당하는 .Net 클래스의 함수. 아마도 가장 큰 어려움은 거기에 많은 차이가 있기 때문에 작성한 문자열 조작 코드 일 것입니다.
- 클래스 라이브러리/어셈블리는 C++에 내장되어 있지 않습니다. 모든 플랫폼에는 동적 또는 공유 라이브러리를 만드는 고유 한 방법이 있으며 C++ 공유 라이브러리는 많지 않습니다. 대부분의 경우 C 라이브러리 만 지원합니다. 모든 것을 정적 라이브러리로 만들 준비를하십시오.
- 모든 리소스를 직접 관리해야합니다.
2
는 C++로 C++/CLI의 포트를 해본 적이 있지만, 내 마음에 오는 :
- 것은 당신이 메모리 누수를 해달라고 있는지 확인합니다. 가능한 경우 gcnew 대신 스마트 포인터를 사용하십시오 (그렇지 않은 경우 코드가 예외 안전인지 확인하십시오).
- 은 (내장은 STL의 유형을 포함하지 않습니다! 당신이 오픈 소스를 가면 그러나이 강제적 필요가 없습니다) 확인하여 라이브러리 인터페이스는 유형을 내장 구성되어 있는지 확인보다 가치
관련 문제
- 1. ASMX에서 정적 메서드를 호출 할 때의 주의점
- 2. MIPS에서 C로 번역 할 때의 문제
- 3. C++/CLI에서 C로 변환
- 4. PPC 어셈블리를 C로 변환 할 수 있습니까?
- 5. vb에서 c로 상수 변환 #
- 6. 이미지를 C로 그래픽 변환 #
- 7. Excel에서 C로 LOGINV를 변환 #
- 8. 코드를 FORTRAN에서 C로 변환
- 9. C++을 objective-c로 변환
- 10. GTK 파이썬 스크립트를 C로 변환
- 11. html에서 pdf로 변환 할 때의 문제
- 12. iPhone에서 NSString을 NSNumber로 변환 할 때의 문제
- 13. 레일에서 form_tag를 변환 할 때의 문제
- 14. C 헤더를 D로 변환 할 때의 문제
- 15. 안드로이드에서 JSON을 HashMap로 변환 할 때의 문제
- 16. 문자열에서 날짜로 변환 할 때의 문제
- 17. HTML에서 Word로 변환 할 때의 오류
- 18. 개체를 Blob 개체로 변환 할 때의 문제
- 19. 바이트 배열을 double로 변환 할 때의 문제
- 20. Delphi 폼을 Lazarus로 변환 할 때의 문제
- 21. .ascx를 면도기 구문으로 변환 할 때의 문제
- 22. C#에서 VB로 변환 할 때의 문제
- 23. HID를 MIDI로 변환 할 때의 질문
- 24. CGPoint를 문자열로 변환 할 때의 문제
- 25. java.util.Date에서 java.sql.Timestamp로 변환 할 때의 문제
- 26. C++ 라이브러리를 objective-c로 변환
- 27. Python 스크립트를 Objective-C로 변환
- 28. MFC 동기화 개체 사용시의 주의점
- 29. PIC 16F877A 용 ASM에서 C로 변환 할 수있는 도구가 있습니까
- 30. C로 작성된 프로그램은 OCaml로 작성된 프로그램보다 빠르며 C로 변환 할 수 있습니까?