关于多线程的问题,请高手剔教!在线等待……(10分)

F

fjw

Unregistered / Unconfirmed
GUEST, unregistred user!
我写了一个线程,非常简单,仅仅是测试我的服务程序(ISAPI).
这部分代码在测试窗口执行正常(说明ISAPI正常),但放到线程中执行报违例
“标记没有引用存储”,真是百思不得其解。求助各位大虾了。
procedure TTestThread.Execute;
var
HTTPRIO: THTTPRIO;
aIntf: IMyTestService;
Result : Integer;
begin

HTTPRIO := THTTPRIO.Create(nil);
HTTPRIO.URL :='HTTP:192.168.0.1//MyWebService/MyWebServer.DLL/SOAP';
aIntf := HTTPRIO as IMyTestService;
try
try
Result := aIntf.MyTestFunc;
finally
HTTPRIO.Free;
aIntf := nil;
end;
except
On E:Exceptiondo
;
// 此处报违例“标记没有引用存储”
end;

end;
 
做一个CoInitialize(nil)放在你的项目的开头。
这是一个经验的解决方法。出现这个问题的原因可能是
Borland在Web Service中使用的是Interface接口方案,可能会有部分涉及到了
COM,但是它本意不是想涉及到COM,所以,它没有缺省地初始化CoInitialize(nil)。
 
接受答案了.
 
顶部