8
スレッド内でCOMインターフェイスを使用しようとしています。私が読んだことから、私はCoInitialize/CoUninitialize
を各スレッドに呼び出す必要があります。TThreadとCOM - "CoInitializeが呼び出されていません"、CoInitializeがコンストラクタで呼び出されました
これが正常に動作している間に:私は、コンストラクタの呼び出しとデストラクタ移動したときに
procedure TThreadedJob.Execute;
begin
CoInitialize(nil);
// some COM stuff
CoUninitialize;
end;
を:
TThreadedJob = class(TThread)
...
protected
procedure Execute; override;
public
constructor Create;
destructor Destroy; override;
...
constructor TThreadedJob.Create;
begin
inherited Create(True);
CoInitialize(nil);
end;
destructor TThreadedJob.Destroy;
begin
CoUninitialize;
inherited;
end;
procedure TThreadedJob.Execute;
begin
// some COM stuff
end;
を私はEOleExceptionを得る:のCoInitializeは例外は呼び出されていないと私はありません持っていますなぜなら。
雷の高速応答ありがとうございます。 – forsajt