VB6 ActiveX exe 프로젝트에서 새로운 이벤트가 추가되면 이벤트 디스패치 인터페이스의 GUID를 보존 할 수있는 방법이 있습니까?VB6 이진 호환성 - 새로운 이벤트 추가
분명히 기존 이벤트를 변경하면 호환성이 깨집니다. 새 항목을 추가해도 VB6 IDE에서 경고를 표시하지 않습니다. 새로운 메소드를 추가 할 때 경고하지는 않지만 적어도 기존 메소드가 GUID를 유지한다는 점에서 놀랍지는 않습니다.
이벤트를 사용하면 나중에 새 이벤트가 추가 될 경우 기존 이벤트와의 호환성을 유지할 수 없습니다.
이것은 COM을 통해 통합 된 VB6 응용 프로그램에서는 문제가되지 않는 것 같습니다. 나는 VB 런타임이 GUID를 미리 알 필요가없이 레지스트리를 통해 이벤트를 픽업하는 것을 영리하게 생각한다고 가정한다.
다른 앱은 .Net (특히 C#)이며 이벤트 싱크를 구현하기 위해서는 손으로 인터페이스를 선언해야합니다. GUID를 상수로 유지하여 i/VB6 앱이 확장 될 때마다 VB6 앱에서 새로 구현 된 이벤트에 대해 알지도 모르고 신경을 쓰지도 못합니다. .NET 소스 코드를 변경하지 않고도 기존 이벤트를 계속 사용할 수 있기를 바랍니다.
내가 할 수있는 VB6 트릭이 있습니까?
아마도,하지만 내가 겪은 것은 VB6 앱을 수정할 수있는 방법인데, 이는 .Net 앱 (및 기존 VB6 앱과 통합 된 타사 앱)을 의미하지는 않습니다. 우리가/새로운 이벤트를 구현하기를 원하지 않는 한, 몇 가지)를 전혀 건드릴 필요가있다. –
VB6 서비스 팩 7의 상태를 확인하십시오. –