2010-04-13 2 views
0

프로젝트가 원래 이진 호환성으로 설정되었지만 빌드되지 않았습니다. 그래서 우선 No Compatibility로 설정했습니다. 그런 식으로 잘 만들었습니다. 그런 다음 바이너리 호환성으로 다시 설정하고 이전에 생성 된 파일을 덮어 썼습니다. 정상적으로 작동했습니다.왜 버전 호환성을 이진 호환성과 호환되지 않는 것으로 설정해야합니까? 그런 다음 다시 이진 호환성으로 설정해야만 작동합니까?

왜 이런 일이 발생해야합니까?

답변

3

당신이 사용하고있는 바이너리 호환 위치가 실행 파일 자체이고 저장된 bincompat 버전이 아닐 수도 있습니다.

코드 내의 노출 된 com 인터페이스를 변경하면 빌드를 방해하는 이진 호환성이 손상됩니다 (확장 인터페이스로는 벗어날 수 있지만 기존 인터페이스는 변경되지 않음).

호환성을 유지하면서 빌드하도록 설정하면 검사가 취소되고 실행 파일이 빌드됩니다.

그런 다음 바이너리로 다시 변경했는데, 이것은 왜/왜 내가 바이너리 compat 버전을 빌드 된 exe 파일 자체가 아니라 별도의 복사본으로 지정 하는지를 가리키는 것입니다 - 따라서 실행 파일은 자동으로 자체와 호환되며 빌드 할 수있었습니다 .

+1

+1 실행 파일의 임시 빌드와 별개로 별도의 파일을 이진 호환 위치로 유지하는 것이 좋습니다. 매뉴얼에서 말하는 것처럼. PS Farhan, 매뉴얼을 읽으십시오. 바이너리 호환성이 중요하며 잘 설명되어 있습니다. http://msdn.microsoft.com/en-us/library/aa733706(v=VS.60).aspx – MarkJ

+0

도움 주셔서 감사합니다. :) –

0

VB6에서 dll/exe에 대한 참조를 열어서 이진 호환성을 사용할 때 공개하지 않을 수있는 버그가 있다고 생각하여 때로는 VB6을 닫고 다시 열고 닫을 수 있습니다. 짓다.

+0

아니요, 다시 열면 건물이 저를 위해 작동하지 않습니다. –