이 튜토리얼의 두 번째 부분이 끝나면 작은 문제에 직면하게 됩니다. 하지만 솔직히 말해서 그것은 실제로 큰 문제입니다. 시간이 있다면 이 문제는 연구할 가치가 있을 것입니다.
우리가 그 문제에 어떻게 직면했는지 기억하시나요? 당시 우리는 먼저 ActiveXDLL을 컴파일한 다음, DLL을 사용한 테스트 프로그램을 컴파일했습니다. 다음으로, DLL의 내용을 수정해야 한다고 가정하고 DLL을 다시 컴파일합니다. 그런데 테스트 프로그램을 다시 실행하면 오류가 발생합니다!
예, 그럴 수는 없습니다.
경험에 따르면 이것이 호환성 문제라는 것을 알 수 있기 때문입니다. 따라서 다음과 같이 처리할 수 있습니다.
Visual Basic을 시작하고 Northwind 프로젝트를 엽니다.
"PROject"->"NorthwindProperties" 메뉴를 선택합니다.
"구성요소" 탭을 클릭하세요.
"버전 호환성" 페이지 콘텐츠를 탐색하면 세 가지 옵션을 찾을 수 있습니다. 이제 설명하겠습니다.
NoCompatibility - 컴파일할 때마다 사용자 COM 구성 요소는 새 태그로 표시됩니다. 이는 프로그램이 DLL의 이전 태그(이전 버전)만 사용할 수 있음을 의미합니다.
프로젝트 호환성 - 사용자 COM 구성 요소가 컴파일될 때마다 항상 새 태그로 표시되는 것은 아닙니다. 그렇다면 현재 사용 중인 모든 응용 프로그램이 실패합니다. 실제로 이는 현재 프로젝트가 컴파일된 DLL 프로젝트와 크게 다른 경우에만 발생합니다.
BinaryCompatibility - 컴파일될 때마다 응용 프로그램은 항상 이전에 컴파일된 DLL 태그를 저장하려고 시도하므로 사용된 응용 프로그램에 블루 스크린이 표시되지 않습니다. 그러나 현재 컴파일할 DLL이 이전에 컴파일한 DLL과 너무 다른 경우 새 태그가 표시됩니다.
위의 주장을 테스트해 보겠습니다.
이 튜토리얼의 이전 부분에서 테스트 프로그램을 엽니다.
다시 컴파일하세요.
테스트를 실행해 보면 정상적으로 작동할 것입니다.
ActiveXDLL 프로젝트를 엽니다.
속성을 BinaryCompatibility로 설정합니다.
DLL을 다시 컴파일하십시오.
테스트 프로그램을 시험해 보면 제대로 작동할 것입니다.
네, 문제가 해결된 것 같습니다. 그러나 DLL이 다시 컴파일되면 대부분의 개발자는 또 다른 비호환성 상황에 빠지게 됩니다.
더 나은 해결책은 없을까요? 지금은 이 문제를 제쳐두자!
더 많은 콘텐츠를 보려면 다음 사이트를 방문하세요.
www.PylonOfTheMonth.co.uk.->