「BPLは特別な種類のDLL」だと聞いたことがありますが、この文が非常に重要であるとは思っていませんでした。私は最近、誰かが特定のDPKに属するユニットで輸出声明を書いているのを見ましたが、私は非常に驚きました。しかし、Delphiの助けを見ると、輸出に関連するのはすべてライブラリです。今日「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 @@ packagunload $ qqrv
00001260 6 0004ファイナライズ
0000126C 5 0000 @nullpackage @initialization $ qqrv
同じアドレスを指しているいくつかの関数を見たことがありますか?これはおそらく輸出の意味です。
オフトピック:Googleは今日使いやすいので、Baiduを使用する必要がありましたが、結果を出さないのに長い時間がかかりました。午後にGoogleを手に入れて検索し、すぐに必要なものを見つけました。バイドゥはまだそれを行うことができないようです。