Неожиданное исключение при вызове методов COM-объекта из Delphi? - PullRequest
1 голос
/ 07 августа 2011

У меня есть профессиональная программа на 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), но ни одна из этих операций не помогла.

Есть идеи, как это исправить / диагностировать?

...