こんにちは 鷹羽あずさと申します。早速ですが質問です。
Delphiのプロジェクト(多数フォームを含む)全体をDLL化して、別のDelphiから
呼ぼうと考えているのですが、どうしてもうまくいきません。
どなたか、御教授お願い致します。以下失敗したサンプルコードを添付致します。
呼び出し側はプロジェクトFileのみ、DLLがわはライブラリ1・フォーム2です。
呼び出し側です
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
(中略)
var
Form1: TForm1;
function FncForm(): integer; external 'Keisan.dll';
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
Retrun: integer;
begin
Retrun := FncForm();
button1.Caption := varTostr(Retrun);
end;
end.
↓ここよりDLL側です
library Keisan;
uses
SysUtils,
Classes,
SubA01 in 'SubA01.pas' {frm001},
SubA02 in 'SubA02.pas' {frm002};
{$R *.res}
function FncForm(): integer; stdcall;
begin
frm001.Create(frm001);
frm001.Show;
result := 1;
end;
exports
FncForm();
begin
end.
うちの環境ではうまく動いているように見えます(Delphi5Professional+Win2000)。
「うまくいかない」とは、具体的にどううまくいっていないのでしょうか。
それと、環境がわからないと、環境依存なのかどうかもわかりません。
もちろん、EXEとDLLは同じフォルダか、パスの通ったところにありますよね。
いつもいつも回答有難う御座います。
私の環境は(Delphi6Enterprise+Win2000professional)です。
いろいろと試した結果うまくいきました。有難う御座いました。
環境については、ご報告が遅れました事をお詫びします。
これからも宜しくお願い致します。
ツイート |