vb.net调用vc++写的dll的有关问题
vb.net调用vc++写的dll的问题
我是个vb.net新手,最近写一个医院管理系统,其中需要调用医保接口,我们这里的医保是东软的,只提供了动态库方式连接,并且提供了文档,但并未提供其他语言调用的DEMO,文档中是这样写的:
1.2 BUSINESS_HANDLE 业务函数
1.2.1 语法规则 Syntax:
对外提供接口:
SiInterface.dll
int WINAPI BUSINESS_HANDLE(const char* inputData,
char* outputData)
输入参数:inputData
输出参数:outputData char*
返回值: 成功 0 失败 -1
输入参数是以“^、$、|”分割的字符串
输出也是以“^”“@、^、$、|”分割的字符串
我在调用DLL的时候是这样写的:
在程序中测试调用DLL中的函数是这样写的:
现在出现的问题是这样的:在调用这个动态库中的函数的时候会有一个输出的日志,调用时可以正常运行,但是调用BUSINESS_HANDLE(const char* inputData, char* outputData)函数中的输出参数的时候,不能正确显示出输出参数中的内容,我 不知道是我调用的方法不对还是怎样?请各位高手指点一下!谢谢!
------解决方案--------------------
请参考:http://bbs.****.net/topics/250030068
------解决方案--------------------
同问:
楼主会了吗,有时间贴出来呗。我也在做这个,调用C++写的dll,我用的是vb.net2010
我是个vb.net新手,最近写一个医院管理系统,其中需要调用医保接口,我们这里的医保是东软的,只提供了动态库方式连接,并且提供了文档,但并未提供其他语言调用的DEMO,文档中是这样写的:
1.2 BUSINESS_HANDLE 业务函数
1.2.1 语法规则 Syntax:
对外提供接口:
SiInterface.dll
int WINAPI BUSINESS_HANDLE(const char* inputData,
char* outputData)
输入参数:inputData
输出参数:outputData char*
返回值: 成功 0 失败 -1
输入参数是以“^、$、|”分割的字符串
输出也是以“^”“@、^、$、|”分割的字符串
我在调用DLL的时候是这样写的:
Public Class DLLImports
<DllImport("SiInterface.dll", EntryPoint:="INIT")> Public Shared Function INIT(ByVal OutputInfo As String) As Integer
End Function
<DllImport("SiInterface.dll", EntryPoint:="BUSINESS_HANDLE")> Public Shared Function BUSINESS_HANDLE(ByVal inputData As String, <Out> ByVal outputData As String) As Integer
End Function
End Class
在程序中测试调用DLL中的函数是这样写的:
Dim inputdata As String
Dim l_outputdata As String
Dim result As Integer
inputdata = "9100^H129^0037^^2007010^^|^"
l_outputdata = Space(100)
result = BUSINESS_HANDLE(inputdata, l_outputdata)
If result <> 0 Then
System.Console.WriteLine("医保返回值:" & l_outputdata)
End If
System.Console.WriteLine("返回值:" & result)
现在出现的问题是这样的:在调用这个动态库中的函数的时候会有一个输出的日志,调用时可以正常运行,但是调用BUSINESS_HANDLE(const char* inputData, char* outputData)函数中的输出参数的时候,不能正确显示出输出参数中的内容,我 不知道是我调用的方法不对还是怎样?请各位高手指点一下!谢谢!
------解决方案--------------------
请参考:http://bbs.****.net/topics/250030068
------解决方案--------------------
同问:
楼主会了吗,有时间贴出来呗。我也在做这个,调用C++写的dll,我用的是vb.net2010