以下の DLL は XE3 でコンパイルされています。
library MyDLL;
uses System.SysUtils, System.Classes, Vcl.Dialogs;
{$R *.res}
var
II: Integer;
function Test: Integer;
begin
Result := II;
end;
exports Test;
begin
II := 5;
ShowMessage('DLL prolog');
end.
Test()
Delphi XE3 または Delphi 2007 プログラムから関数を呼び出すと、どちらの場合も正しい結果 (5) が得られます。ただし、「DLL プロローグ」というメッセージは Delphi 2007 プログラムでのみ表示され、Delphi XE3 プログラムでは表示されません。なんで?
編集
また、Delphi 2007 ホストで XE3 IDE から dll を「実行」してShowMessage()
も機能しません。