COM 오브젝트 DLL을 개발해야하는데 이전 오브젝트를 대체 할 수 있습니다. 이전 COM DLL을 사용하는 응용 프로그램을 개발하지 않으므로이 작업이 필요합니다. 동일한 속성과 메서드를 사용하여 새 COM 개체를 만듭니다. 내가 보는 주된 어려움은 UUID이다. 나는 그들 중 일부의 중요성과 그들이 사용되는 곳의 중요성을 이해하지 못한다. 나는 그것들 중 어느 것이 복제되어야하고 어떤 것은 남겨 둘 수 있는가? COM 객체를 호출하는 프로그램 (Navision의 경우)은 라이브러리와 typelibrary를 설명하는 UUID를 사용한다는 것을 알았습니다. 누군가가 그러한 작업에서 경험을 공유 할 수 있다면 좋을 것입니다.COM 개체를 바꾸는 방법은 무엇입니까?
답변
GUID는 매우입니다. 중요한 것은 COM이 인터페이스, 클래스 및 형식 라이브러리를 찾는 데 사용하는 것입니다. 이름 대신에, 인간은 보장 된 고유 한 이름을 고르는 것에별로 능숙하지 않습니다.
정확히 일치해야합니다. 그렇지 않으면 클라이언트 코드가 올바르게 작동하지 않습니다. 또한 인터페이스가 똑같은 서명과 똑같은 순서로 똑같은 메소드를 가지고 있는지 확인해야합니다. 잘못된 guid를 얻는 것은 합당한 오류 메시지를 생성하는 경향이 있지만, 인터페이스를 잘못 이해하면 거의 항상 실행 불가능한 런타임 동작이 발생합니다. 이는 운이 좋은 경우에만 액세스 위반이 발생합니다.
GUID는 모두 똑같이 중요합니까? COM 객체의 수정 된 버전을 사용하면 모든 GUID가 첫 번째 버전의 것과 일치해야합니까? – Jaywalker
드롭 인 대체품이 될 것으로 예상되는 경우 그 중 하나를 다른 것으로 만드는 데는 전혀 요점이 없습니다. –
- 1. 두 프로세스간에 COM 개체를 공유하는 방법은 무엇입니까?
- 2. COM 개체를 .Net 개체로 변환
- 3. COM 개체를 JScript로 반환
- 4. COM 개체를 IntPtr로 P/Invoke 메서드에 전달하는 방법은 무엇입니까?
- 5. server.create 인스턴스 만 주어진 COM 개체를 찾는 방법은 무엇입니까?
- 6. Python 3.x에서 COM 개체를 사용하는 방법은 무엇입니까?
- 7. qt.conf를 바꾸는 방법은 무엇입니까?
- 8. 변수를 바꾸는 방법은 무엇입니까?
- 9. 의도적으로 COM 개체를 크래킹하는 방법
- 10. COM 개체를 만들 수 없습니다.
- 11. Powershell을 사용하여 COM 개체를 나열하십시오.
- 12. 호환 모드에서 COM 개체를 사용합니까?
- 13. 정규식을 사용하여 텍스트를 조건으로 바꾸는 방법은 무엇입니까?
- 14. 도트를 preg_replace로 바꾸는 방법은 무엇입니까?
- 15. "’"을 바꾸는 방법은 무엇입니까?
- 16. 배열에서 항목을 바꾸는 방법은 무엇입니까?
- 17. PHPSESSID의 이름을 바꾸는 방법은 무엇입니까?
- 18. java에서 \ n을 바꾸는 방법은 무엇입니까?
- 19. iframe을 div로 바꾸는 방법은 무엇입니까?
- 20. 튜플에서 요소를 바꾸는 방법은 무엇입니까?
- 21. 파일의 이름을 바꾸는 방법은 무엇입니까?
- 22. CVPixelBuffer를 UIImage로 바꾸는 방법은 무엇입니까?
- 23. 큰 따옴표를 바꾸는 방법은 무엇입니까?
- 24. 얼굴 표정을 바꾸는 방법은 무엇입니까?
- 25. Java에서 "./"을 바꾸는 방법은 무엇입니까?
- 26. 이미지의 색상을 바꾸는 방법은 무엇입니까?
- 27. QGraphicsView에서 QGraphicsScene을 바꾸는 방법은 무엇입니까?
- 28. 문자열을 분할하고 바꾸는 방법은 무엇입니까?
- 29. 목록의 순서를 바꾸는 방법은 무엇입니까?
- 30. IIRF 규칙에서 '대시'를 '밑줄'로 바꾸는 방법은 무엇입니까?
NAV 2009 R2를 사용하는 경우 NAV에서 .NET 추가 기능을 더 잘 지원하므로 COM 추가 기능이 아닌 .NET 추가 기능으로 만들 수 있습니다. – Allanrbo
같은 클래스의 모든 UUID 인터페이스 ID입니까, 아니면 COM 라이브러리에 여러 클래스가 있습니까? 후자의 경우, 어떻게 관련이 있습니까? 예 : 'object1'가'object2'를 생성 할 수 있다면, 게시 된 IID를 사용하는 대신 내부 메소드를 사용할 수 있습니다. – MSalters