У меня есть .NET DLL, которая служит оболочкой для стороннего приложения.Библиотека DLL зарегистрирована для COM-взаимодействия следующим образом:
C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ RegAsm.exe / tlb / codebase "C: \ Dev \ 1) Source \ TAC10_CAD\ Lib \ PowerPhoneInterface \ PowerPhoneInterface.dll "
В DLL есть несколько методов, которые вызываются из VB6.Все работают отлично, кроме одного.Прототип функции .NET для этого метода выглядит следующим образом:
int SetAniAli([Optional] string incidentType);
В VB6 я вызываю проблемный метод следующим образом:
If GetSettingBitValue("G_POWERPHONE_ENABLE") Then
If CheckPowerPhoneConnection() Then
frmParent_Dispatch.PowerPhoneInterface.SetCallerInformation person,
phone, Callback, Address.FullText
frmParent_Dispatch.PowerPhoneInterface.SetAniAli
rc = frmParent_Dispatch.PowerPhoneInterface.SetAniAli
If rc = 10 Then
PowerPhoneCallInit = True
Else
Call modCAD.SetWarning("Attempt to set ANIALI information failed.")
End If
End If
End If
PowerPhoneInterface - это объектная ссылка на мою DLL.Первый вызов метода (SetCallerInformation) прекрасно работает.Кроме того, есть два других вызова DLL, вызванных из функции CheckPowerPhoneConnection, которые также прекрасно работают.Однако SetAniAli каждый раз выдает ошибку «несоответствие типов».Я определил rc как Long в VB6, но также попробовал Variant.Нет успеха ни с одним.
Я гуглил до тех пор, пока у меня не затуманилось зрение, и я не могу найти, что не так с вызовом.
Буду очень признателен за любые предложения.