2011-11-19 2 views
1

이것은이 프로세스를 더 잘 이해하는 데 도움이되는 학계의 질문입니다 ... 바이너리 호환성을 해결하는 방법을 알아 내려고하지 않아서 왜 시도하지 말아야하는지 설명 할 필요가 없습니다. 이 :)vb6 바이너리 호환성을 외면 함

내가 공공 회원이 vb6에서 DLL을 만들고 컴파일한다고 가정 해 봅시다. 사실, 적어도 하나는 컴파일하지 못하게 될지도 모른다고 생각합니다. 그래서 우리는 하나의 public 메소드를 생성한다고 가정 해 봅시다. 그러나 거기에는 dll이 컴파일되고 그렇지 않으면 무시됩니다.

이제는이 DLL과의 프로젝트 호환성을 설정하고 어떤 상황에서도이 DLL을 업데이트하거나 DLL의 업데이트 된 버전과의 호환성을 변경하지 않습니다.

이 시나리오에서는 vb6이 절대로 해당 중단 오류 메시지를 throw하지 않으며 실제로 호환성을 손상시킬 때도 각 컴파일에서 dll에 대해 동일한 UUID를 계속 사용한다고 생각합니다.

그러나 나는 그 dll에서 생성 한 클래스에 대해 생성 된 값이 매번 변경 될 것이라고 생각하고 있습니다. 그리고 dll을 컴파일하는 데 호환성 문제가 없을지라도이 dll을 참조하는 프로젝트에 대해서는 결국 호환성 문제가 발생합니다.

맞나요?

+0

_actual_, _practical_ 관련 프로그래밍 문제는 여기에서 주제와 관련이 있습니다. 순수 학문적 질문은 Q & A 형식에 적합하지 않습니다. –

+0

@TimPost 오, 확실히 실제적이고 실질적인 프로그래밍 문제가 관련되어 있으며 이는 전혀 순수한 학문적 질문이 아닙니다. 나는 사람들이 단지 "오, 좋은 생각이 아니란 말을하지 못하게하는 학문적 문제가 다소 많았다"고 말했다. 내가 좋아하는 사람들로부터 계속해서받는 메시지는 명확한 방식으로 제 질문을 구성하면 가장 좋은 대답을 이끌어내는 것이 "학계"와 같은 잘못된 용어를 보지 않는 것만큼이나 중요하지 않다는 것입니다. –

+0

@TimPost 여하튼 추론을 설명 할 시간을내어 주셔서 감사합니다. –

답변

1

나는 당신의 논리가 옳다고 생각합니다. 프로젝트 호환성을 사용 하시겠습니까?

내가 왜 당신이 을 할 것인지 모르겠다.을 수행 하나, 학문적 인 질문이라고 할 수 있습니다.

+0

동의 함. 현재 직장에서 일하기 시작했을 때 새로운 컨트롤을 만들었고 누군가 변경했을 때 항상 호환성 문제가있었습니다. 나는 빌드를 담당하지는 않았지만 새 릴리스가 만들어 질 때 호환성 DLL을 업데이트하는 프로세스가 없다는 것을 알았습니다. 그래서 나는 이것이 그 뒤에있는 이유라고 스스로 확인하고 있습니다. (이후 프로세스를 올바르게 설정했습니다.) –