2011-05-16 3 views
5

델파이 XE를 설치 한 후, 제 오래된 델파이 7이 더 자주 충돌하기 시작했습니다. 오늘 나는 "c : \ Program Files \ Borland \ Delphi7 \ Projects \ Bpl"에서 삭제 한 경우에도 내 BPL 중 하나가 D7에 의해로드되었음을 발견했습니다. 전체 디스크를 검색 한 후에 "c : \ Users \ Public \ Documents \ RAD Studio \ 8.0 \ Bpl"에 해당 BPL의 복사본을 발견했습니다.Delphi XE (BPL 혼합 경로) 설치 후 델파이 7이 충돌 함

제 질문은 델파이 7이 "c : \ Users \ Public \ Documents \ RAD Studio \ 8.0 \ Bpl"에있는 이유는 무엇입니까? "c : \ Program Files \ Borland \ Delphi7 \ Projects \ Bpl"로만 보이도록 설득 할 수 있습니까?

+2

두 번째 단락에서 이러한 경로 중 하나가 델파이 XE에 대해 언급 한 것 같습니다. –

+0

IIRC에는 글로벌 및 글로벌 프로젝트에 대한 프로젝트 로컬 설정이 있습니다. 둘 다 확인하십시오. 또한 IIRC BPL은 일부 Delphi-magic이 포함 된 DLL이기 때문에 (글로벌) DLL 검색 경로 (다른 것 중에서 PATH 변수)가 간섭 할 수 있습니다. – 0xC0000022L

+1

자진 DLL/BPL 지옥에 오신 것을 환영합니다. DLL과 BPL은 한 폴더에서만로드되지 않으며 경로에서 이름, 위치에 관계없이로드됩니다. –

답변

10

Delphi XE는 아마도 PATH 환경 변수를 확장하여 Delphi XE Bpl 폴더를 포함시킵니다. Delphi 7은 더 잘 알지 못합니다. 다른 모든 것과 마찬가지로 LoadLibrary을 호출하고 시스템 경로를 검색합니다.

델파이 예제를 따르고 패키지에 버전 별 접미어을 입력하면 해당 델파이 버전이 반영됩니다. 프로젝트 옵션에서 구성 할 수 있어야합니다. 그렇지 않으면 이름에 버전 접미어가있는 버전 관련 프로젝트 파일 만있을 수 있습니다. 그렇게하면 패키지의 Delphi XE 버전이 경로에 표시 되더라도 델파이 7은 올바른 이름을 갖지 않으므로 델파이 7은이를로드하려고 시도하지 않습니다.

+7

+1 버전 업 그레 이드. –

+0

감사합니다. Rob. Delphi XE에서 내 패키지 중 하나가 컴파일되는지 확인하기 위해 (몇 주 전) 시도했습니다 ... 컴파일 된 것처럼 보입니다. 어제까지 XE를 실제로 사용하려고하지 않았습니다. XE가 D7에 그렇게 할 것이라는 사실을 알지 못했습니다. 그렇지 않으면 물론 버전 접미사를 사용하려고합니다. – Ampere