У меня есть профессиональная программа на Delphi 6, которая вызывает методы COM-объекта, принадлежащие COM-библиотеке MSVC 2008.Библиотека типов 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, потому что это иногда является проблемой при вызове DLLS MSVC с использованием Set8087CW ($ 133f)и затем я попытался снова с Set8087CW (Get8087CW или $ 3f), но ни одна из этих операций не помогла.
Есть идеи, как это исправить / диагностировать?