手動で生成・・・解放は自動で?(なんとなくぎこちなくて・・・)

解決


まろ  2004-04-08 03:59:02  No: 8269  IP: [192.*.*.*]

以前質問してからさほど進んでいないのですが・・・
DLL(データモジュールを使っています)なのですけど、
DLL内でグローバル変数を用意して、
Delphiアプリ(本当はVCアプリにしたいんですけどとりあえず)からDLL内にある関数をコールして
その関数の中でグローバル変数にクラスを割り当てています。
−−−DLL内−−−
var
  DataModule      : TDataModule;

//Delphiアプリに提供している関数
procedure CreateTest;
begin
  if (DataModule = nil) then begin
    DataModule:= TDataModule.Create(Application);
  end;
end;

これで問題なく生成されて、やりたい事はできています。
(問題があればご指摘お願いします)

で、解放作業なのですが、自前で解放する必用はないのでしょうか?
Delphiアプリを終了させるとTDataModuleのDestroyに来るので必用ないとは
思うのですが、ちょっと心配で・・・。

編集    削除
jok  2004-04-08 04:46:45  No: 8270  IP: [192.*.*.*]

> 解放作業なのですが、自前で解放する必用はないのでしょうか?

オーナが Application なので自前解放必要ないのでは。

編集    削除
にしの  2004-04-08 04:59:50  No: 8271  IP: [192.*.*.*]

解放の順序に問題がないのであればOKです。
いつのまにか解放してしまったオブジェクトを参照してしまうようなコードを書いている場合には、自前で解放する必要があります。

編集    削除
まろ  2004-04-08 18:21:04  No: 8272  IP: [192.*.*.*]

>オーナが Application なので自前解放必要ないのでは。
あー・・・そうかぁ、これだとアプリケーションが2つあることに
なっちゃうのか。(^^;

>解放の順序に問題がないのであればOKです。
そうですか、どうもありがとうございました!
また少し先に進めそうです。

編集    削除