ãDelphi XE2 ã§ãWin64 ãã€ãã£ãã®ïŒ€ïŒ¬ïŒ¬ãäœã£ãŠããæã«
äžå¯æè°ãªçŸè±¡ã«ééããã®ã§å ±åããããŸãããåæ§ã®çŸè±¡ã«
åºäŒã£ãæ¹ã¯ããã£ããããŸãããïŒ
â çŸè±¡
ïŒïŒïŒ€ïŒ¬ïŒ¬ãäœãããã®äžã«æ¬¡ã®äºã€ã®ãšã¯ã¹ããŒãæç¶ããçšæã
procedure ExportA; stdcall;
begin
Abort;
end;
ãã
procedure ExportB; stdcall;
begin
try
Abort;
except
raise;
end;
end;
ïŒïŒDelphi XE2 ã® Win64 Release ã¢ãŒãã§ïŒ€ïŒ¬ïŒ¬ãã³ã³ãã€ã«ã
ïŒïŒWindows 7 64-bit Edition ã®åäœç°å¢ãçšæããé©åœãªãã¹ã
ããã¢ããªã±ãŒã·ã§ã³ïŒãã¡ããïŒïŒãããïŒã«ïŒ€ïŒ¬ïŒ¬ããªã³ã¯
ãããããŠãããããã®ãšã¯ã¹ããŒãæç¶ããåŒã³åºããŠã¿ãã
ãããš ExportA ã§ã¯ããã¹ãã¢ããªã±ãŒã·ã§ã³åŽã«ãã©ããå¯èœãª
äŸå€ãçããã®ã«ãExportB ã§ã¯ Runtime error 216ïŒã¢ã¯ã»ã¹
éåïŒãçãããã¹ãã¢ããªã±ãŒã·ã§ã³ã匷å¶çµäºãããŸãã
raise; ã®æç¹ã§éåãçããããã§ãããã try-finally æã§
ãããã§ããfinally ç¯ãŸã§åŠçãè¡ããŸããã
ãããããããšç§ã®ç°å¢ããããã°ã©ã ã®äœãã«ç¹æã®çŸè±¡ãªã®ãã
ãããŸãããïŒæéãèŠã€ããŠæå°ã³ãŒãã§è©ŠãããšæããŸã)ã
ããã«ããŠãäŸå€ã except ã§ãã©ããããŠåçæãããã ãã§
åäœãç°ãªããšããã®ã¯äžå¯æè°ã§ãã
ââââââââââââââââââââââââââââââââââââ
æ ªåŒäŒç€Ÿã€ããžãªã 代衚åç· åœ¹ 髿šå€ªé
ãïŒïŒïŒïŒïŒïŒïŒïŒ èšåç æ¥ç«åž æ°Žæšçº ïŒïŒïŒïŒïŒïŒïŒ
é»è©±ïŒïŒïŒïŒïŒïŒïŒïŒïŒïŒïŒïŒïŒ
ãã¡ã¯ã·ããªïŒïŒïŒïŒïŒïŒïŒïŒïŒïŒïŒïŒïŒ
é»åã¡ãŒã«ïŒtarou_...@imageom.co.jp
ããŒã ããŒãžïŒhttp://www.imageom.co.jp/
MLããŒã ããŒãž: http://www.freeml.com/delphi-users
----------------------------------------------------------------------
æŠåœæä»£ã®æŠå°éãšãšãã«å€©äžçµ±äžãç®æããïŒ
http://ad.freeml.com/cgi-bin/sa.cgi?id=h1FPE
-----------------------------------------------------[freeml by GMO]--
ãæšå€å ±åããçŸè±¡ã«ã€ããŠãæå°ã³ãŒãã§ãåçŸã確èªãããŸããã®ã§ã
å ±åããããŸããããã¹ãã«äœ¿çšãããšã¢ããªã±ãŒã·ã§ã³ã®ãœãŒã¹
ã³ãŒããæ«å°Ÿã«æ²èŒããããŸããããããã Delphi XE2 update 1 ã§
ãã«ãããåããã£ã¬ã¯ããªã«çœ®ããŸãããã¢ããªã±ãŒã·ã§ã³ãèµ·åããŠ
TestAButton ã TestBButton ãæŒããšã次ã®ããã«ãªããŸãã
ããâââââââââ¯ââââââââ¯âââââââ¯ââââââ
ããã³ã³ãã€ã«ãããâåäœç°å¢ãããâãã¹ãããâãã¹ã
ããâââââââââŒââââââââŒâââââââŒââââââ
ããWin32 ãããããâWindows XPããâæ£åžžããããâæ£åžž
ããRelease ã¢ãŒããâïŒïŒãããããââ»ïŒããããââ»ïŒ
ããããããããããâââââââââŒâââââââŒââââââ
ããããããããããâWindows 7 ããâæ£åžžããããâæ£åžž
ããããããããããâïŒïŒãããããââ»ïŒããããââ»ïŒ
ããâââââââââŒââââââââŒâââââââŒââââââ
ããWin64 ãããããâWindows 7 ããâæ£åžžããããâç°åžž
ããRelease ã¢ãŒããâïŒïŒãããããââ»ïŒããããââ»ïŒ
ããâââââââââ·ââââââââ·âââââââ·ââââââ
ããâ»ïŒïŒãTest*ButtonClick ã§äŸå€ããšè¡šç€ºãããŸãã
ããâ»ïŒïŒRuntime error 216ïŒã¢ã¯ã»ã¹éåïŒãçããã¢ããªã±ãŒã·ã§ã³ã
ããããã匷å¶çµäºãããŸãã
Delphi ã®ãã°ããšæããŸãã®ã§ãã«äžããŠãããŸãã
(以äžããã¹ãããã°ã©ã ã®ãœãŒã¹ã³ãŒãïŒ
ââââââââââââââââââââââââââââââââââââ
â ã®ãœãŒã¹ã³ãŒã
library TestDLL;
uses SysUtils;
procedure ExportA; stdcall;
begin
Abort;
end;
procedure ExportB; stdcall;
begin
try
Abort;
except
raise;
end;
end;
exports ExportA name 'ExportA',
ExportB name 'ExportB';
begin
end.
â ã¢ããªã±ãŒã·ã§ã³ã®ãœãŒã¹ã³ãŒã
unit Main;
interface
uses Forms,Windows,Classes,Controls,StdCtrls;
type TTestAProc=procedure; stdcall;
TTestBProc=procedure; stdcall;
type TMainForm=
class(TForm)
TestAButton:TButton;
TestBButton:TButton;
procedure MainFormCreate(Sender:TObject);
procedure MainFormDestroy(Sender:TObject);
procedure TestAButtonClick(Sender:TObject);
procedure TestBButtonClick(Sender:TObject);
private
DLLHandle:THandle;
TestAProc:TTestAProc;
TestBProc:TTestBProc;
end;
var MainForm:TMainForm;
implementation
{$R *.DFm}
procedure TMainForm.MainFormCreate;
begin
DLLHandle:=LoadLibrary('TestDLL.DLL');
TestAProc:=GetProcAddress(DLLHandle,'ExportA');
TestBProc:=GetProcAddress(DLLHandle,'ExportB');
end;
procedure TMainForm.MainFormDestroy;
begin
FreeLibrary(DLLHandle);
end;
procedure TMainForm.TestAButtonClick;
begin
try
TestAProc;
except
WriteLn('TestAButtonClick ã§äŸå€');
end;
end;
procedure TMainForm.TestBButtonClick;
begin
try
TestBProc;
except
WriteLn('TestBButtonClick ã§äŸå€');
end;
end;
end.
ââââââââââââââââââââââââââââââââââââ
æ ªåŒäŒç€Ÿã€ããžãªã 代衚åç· åœ¹ 髿šå€ªé
ãïŒïŒïŒïŒïŒïŒïŒïŒ èšåç æ¥ç«åž æ°Žæšçº ïŒïŒïŒïŒïŒïŒïŒ
é»è©±ïŒïŒïŒïŒïŒïŒïŒïŒïŒïŒïŒïŒïŒ
ãã¡ã¯ã·ããªïŒïŒïŒïŒïŒïŒïŒïŒïŒïŒïŒïŒïŒ
é»åã¡ãŒã«ïŒtarou_...@imageom.co.jp
ããŒã ããŒãžïŒhttp://www.imageom.co.jp/
MLããŒã ããŒãž: http://www.freeml.com/delphi-users
----------------------------------------------------------------------
ãã¢ã«ãã€ã«ããªã³ã©ã€ã³ã«ãŒãã²ãŒã ã§æã€ã¶ãïŒ
http://ad.freeml.com/cgi-bin/sa.cgi?id=h1JkU
> ãæšå€å ±åããçŸè±¡ã«ã€ããŠãæå°ã³ãŒãã§ãåçŸã確èªãããŸããã®ã§ã
> å ±åããããŸããããã¹ãã«äœ¿çšãããšã¢ããªã±ãŒã·ã§ã³ã®ãœãŒã¹
> ã³ãŒããæ«å°Ÿã«æ²èŒããããŸããããããã Delphi XE2 update 1 ã§
> ãã«ãããåããã£ã¬ã¯ããªã«çœ®ããŸãããã¢ããªã±ãŒã·ã§ã³ãèµ·åããŠ
> TestAButton ã TestBButton ãæŒããšã次ã®ããã«ãªããŸãã
>
> ããâââââââââ¯ââââââââ¯âââââââ¯ââââââ
> ããã³ã³ãã€ã«ãããâåäœç°å¢ãããâãã¹ãããâãã¹ã
> ããâââââââââŒââââââââŒâââââââŒââââââ
> ããWin32 ãããããâWindows XPããâæ£åžžããããâæ£åžž
> ããRelease ã¢ãŒããâïŒïŒãããããââ»ïŒããããââ»ïŒ
> ããããããããããâââââââââŒâââââââŒââââââ
> ããããããããããâWindows 7 ããâæ£åžžããããâæ£åžž
> ããããããããããâïŒïŒãããããââ»ïŒããããââ»ïŒ
> ããâââââââââŒââââââââŒâââââââŒââââââ
> ããWin64 ãããããâWindows 7 ããâæ£åžžããããâç°åžž
> ããRelease ã¢ãŒããâïŒïŒãããããââ»ïŒããããââ»ïŒ
> ããâââââââââ·ââââââââ·âââââââ·ââââââ
> ããâ»ïŒïŒãTest*ButtonClick ã§äŸå€ããšè¡šç€ºãããŸãã
> ããâ»ïŒïŒRuntime error 216ïŒã¢ã¯ã»ã¹éåïŒãçããã¢ããªã±ãŒã·ã§ã³ã
> ããããã匷å¶çµäºãããŸãã
>
> Delphi ã®ãã°ããšæããŸãã®ã§ãã«äžããŠãããŸãã
ãæ¬ä»¶ããµã³ãã«ãããžã§ã¯ãã€ãã§ QualityCentral ã«äžããŠãããŸããã
ããhttp://qc.embarcadero.com/wc/qcmain.aspx?d=100562
ïŒïŒãããã®äžã§äŸå€ã®åçæãã§ããªãã®ã¯éåžžã«äžäŸ¿ã§ãã
æ©æã«å¯ŸåŠããŠããã ãããã®ã§ãçããŸã® Vote ããé¡ãããããŸãã
ââââââââââââââââââââââââââââââââââââ
æ ªåŒäŒç€Ÿã€ããžãªã 代衚åç· åœ¹ 髿šå€ªé
ãïŒïŒïŒïŒïŒïŒïŒïŒ èšåç æ¥ç«åž æ°Žæšçº ïŒïŒïŒïŒïŒïŒïŒ
é»è©±ïŒïŒïŒïŒïŒïŒïŒïŒïŒïŒïŒïŒïŒ
ãã¡ã¯ã·ããªïŒïŒïŒïŒïŒïŒïŒïŒïŒïŒïŒïŒïŒ
é»åã¡ãŒã«ïŒtarou_...@imageom.co.jp
ããŒã ããŒãžïŒhttp://www.imageom.co.jp/
MLããŒã ããŒãž: http://www.freeml.com/delphi-users
----------------------------------------------------------------------
äœ¿ãæ¹ã¯ããããâªäžéšã®ã¡ã³ããŒã ãã«MLã¡ãŒã«ãéããïŒ
http://ad.freeml.com/cgi-bin/sa.cgi?id=h1MUC