나는 "BPL이 특별한 종류의 DLL"이라고 들었지만,이 문장이 그렇게 큰 의미가 있다고 기대하지 않았습니다. 나는 최근에 누군가가 특정 DPK에 속하는 단위에서 수출 진술을 쓰는 것을 보았고, 나는 매우 놀랐습니다. 그러나 델파이의 도움을 살펴보면 수출과 관련된 모든 것이 라이브러리입니다. 오늘 "Delphi 소스 코드 분석"을 읽은 다음 위의 문장의 의미를 배웠습니다. 따라서 다음과 같은 추론이 있습니다.
DLL 프로젝트의 경우, 수출은 프로젝트 파일이나 장치로 작성 될 수 있습니다.
BPL은 일종의 DLL입니다.
위의 수출은 정상입니다.
실제로 "Delphi 소스 코드 분석"의 명령문에 따르면 BPL은 중복 장치 확인과 같은 DLL을 기반으로 일부 기능 만 추가합니다. 운영 체제는 BPL과 DLL을 동일한 유형의 파일로 간주합니다. 그리고이 책은 가장 간단한 bpl에 대한 tdump 결과를 제공합니다.
패키지 nullpackage;
필요합니다
RTL;
끝.
e :/ls> tdump -m -ea : v nullpackage.bpl
nullpackage.bpl에서 내보내기
7 수출 된 이름, 7 수출 주소는 1입니다.
RVA에 의해 정렬 :
RVA Ord. 이름 힌트 이름
--------------------------------------------------------- --------------------------------------------------------- ----------------------------
0000124C 1 0006 @getPackageInfotable
0000124C 2 0003@nullpackage @@ getPackageInfotable $ qqrv
00001254 3 0002@nullpackage @@ packageload $ qqrv
00001254 7 0005 초기화
00001260 4 0001@nullpackage @@ packageunload $ qqrv
00001260 6 0004 결승
0000126c 5 0000 @nullpackage @초기화 $ qqrv
같은 주소를 가리키는 여러 기능을 보셨습니까? 이것은 아마도 수출이 의미하는 바일 것입니다.
오프 주제 : Google은 오늘 사용하기 쉽지 않으므로 Baidu를 사용해야했지만 결과를 얻지 못하는 데 오랜 시간이 걸렸습니다. 나는 오후에 Google을 얻었고 검색하고 즉시 필요한 것을 찾았습니다. 바이두는 여전히 할 수없는 것 같습니다.