我绞尽脑汁几乎杀了我的键盘试图让这个工作成功。任何帮助将不胜感激。
我正在创建一个VB .NET应用程序,它是另一个系统的帮助应用程序。我可以访问我正在访问的应用程序的API。简而言之,这是我需要调用的C ++ COM函数:
RecordSearch(RemoteServer,ScreenName,FieldData,ObjId,Flags,MaxHitCount,ResultSet,ScreenDef,OASError)
我有权声明ResultSet& ScreenDef的方式不同。我的问题是当我尝试以这种方式传递函数时,我不断收到类型不匹配错误:
Dim Optix8 As OptixRemoteServer = New OptixRemoteServer()
Dim Optix8WS As Object = CreateObject("Optix8.Application")
Optix8WS.ServerSelect("Mac")
If (Optix8WS.ServerLogon("########")) Then
Dim screen_name = "Claims"
Dim myFieldData As Object = Nothing
Dim myObjectId = CreateObject("Optix8.Objid")
myObjectId.FromString("oas:/12000/file/22")
Dim Flags As Long = 0
Dim MaxHitCount As Long = 0
Dim myResultSet As Object = Nothing
Dim myScreenDef As Object = Nothing
Dim OASError = Nothing
Try
Dim result = Optix8WS.RecordSearch(Nothing, screen_name, myFieldData, myObjectId, Flags, MaxHitCount, myResultSet, myScreenDef, OASError)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End If
问题在于myResultSet& myScreenDef我相信。我不完全理解如何将这两个[out]传递给创建的空对象。我在C#中使用out和ref完成了这个,但是这些在VB.NET中是不可行的。
我错过了什么吗?我怎么做到这一点?我对VB.NET不是很了解。我是C#程序员。