0

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 からは問題なく動作します

どこから探せばいいのか、考えるだけでも途方にくれます。

4

2 に答える 2

1

では、finallyを呼び出していますが、 を呼び出すFree必要がありますworkerDM.Free

于 2010-08-06T08:24:21.097 に答える
0

この質問にこれ以上答えられるとは思えません。プロジェクトはスクレイピングされ、エラーを生成するオブジェクトは使用されなくなりました。

削除リクエストに回答がありません

これが今の私の答えです。

于 2011-09-06T02:01:02.500 に答える