Com オブジェクトがあり、DataModule からセットアップ/作成/作業しています。
アプリケーションからのデータモジュールの作成/実行/解放は問題なく機能します。
しかし、データモジュールを DLL に入れると、最初は正常に動作し、com オブジェクトなどを実行します。しかし、アプリケーションを再起動せずに数回呼び出すと、このエラーが表示されます。
エラーメッセージの画像 http://darkaxi0m.name/so/errormessage.GIF
アプリにはかなりのコードがあるため、すべてを投稿することはできません。アプリケーションとDLLの両方でMadExceptを試しましたが、うまくいきませんでした。あまり役に立たないように思われる時点でIDEが壊れます...
代替テキスト http://darkaxi0m.name/so/cpubreak.gif
これは DataModule を処理するコードです。アプリケーションと Dll の両方のテストで同じ関数が使用されます。
function GetAmount( Amount : integer; var Info: PChar): integer; stdcall;
var
tempInfo: string;
workerDM : TworkerDM;
begin
Result := 0;
workerDM := TworkerDM.Create(nil);
try
tempInfo:= Info;
Result := workerDM.GetAmount(Amount, tempInfo);
StrPCopy(Info, tempInfo);
finally
workerDM.Free;
end;
end;
Ole Object のせいにしたいのですが、Dll からは問題なく動作します
どこから探せばいいのか、考えるだけでも途方にくれます。