में बुलाया जाता है, मैं थ्रेड के भीतर COM इंटरफ़ेस का उपयोग करने का प्रयास कर रहा हूं। मैंने जो पढ़ा है, उससे मुझे प्रत्येक थ्रेड में CoInitialize/CoUninitialize
पर कॉल करना होगा।टीटीएचड और COM - "CoInitialize को नहीं कहा गया है", हालांकि CoInitialize को निर्माता
इस जबकि ठीक काम कर रहा है:
procedure TThreadedJob.Execute;
begin
CoInitialize(nil);
// some COM stuff
CoUninitialize;
end;
जब मैं निर्माता के लिए कॉल और नाशक के लिए कदम: CoInitialize नहीं बुलाया गया है अपवाद और मुझे पता नहीं है:
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 मिल सुराग क्यों
बिजली के तेज उत्तर के लिए धन्यवाद। – forsajt