我有一个Delphi 6专业程序,它调用属于MSVC 2008 COM DLL的COM对象方法。 DLL的类型库无错误地导入Delphi。我可以无错误地调用其中一个方法,但是大多数其他方法都会导致出现EOleException错误,并显示消息“引发了意外异常”,它对应于EOleException错误代码:0x80040205, EVENT_E_INTERNALEXCEPTION:
http://msdn.microsoft.com/en-us/library/cc704587(v=prot.10).aspx
我在拨打电话前打电话给CoInitialize:
var
intfMsvcComObj: IMsvcComObject;
begin
if not Succeeded(CoInitialize(nil)) then
raise Exception.Create('Coinitialize failed.');
intfMsvcComObj := CoMsvcComObject.Create;
try
// EOleException occurs when I make this call.
intfMsvcComObj.doSomething;
finally
CoUninitialize;
end;
end;
接下来我尝试转换FPU异常,因为使用Set8087CW($ 133f)调用MSVC DLLS时有时会出现问题,然后我再次尝试使用Set8087CW(Get8087CW或$ 3f),但这些操作都没有帮助。
有关如何修复/诊断此问题的任何想法?