微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从使用vb.net调用外部dll中的函数的参数传递的变量中获取结果

如何解决如何从使用vb.net调用外部dll中的函数的参数传递的变量中获取结果

我需要在外部dll中调用一个函数
我声明dll和这样的功能

<DllImport("somedll.dll",CallingConvention:=CallingConvention.Cdecl)>
Public Shared Function somefunction(ByVal XMLResponse As String,ByVal XMLSize As Integer) As Integer
End Function

文档指示somefunction函数使用XMLResponse参数作为缓冲区,以便将响应与一些数据一起存储。 XMLSize是此缓冲区的大小。

我的问题是调用函数后如何获取响应以及如何声明此缓冲区以获取响应。

我知道如何将值传递给函数,但是我从未见过这种情况。

谢谢。

解决方法

<DllImport("somedll.dll",CallingConvention:=CallingConvention.Cdecl)>
Public Shared Function somefunction(ByVal XMLResponse As StringBuilder,ByVal XMLSize As Integer) As Integer
End Function
dim sb = new StringBuilder(100)

somefunction(sb,sb.Capacity)

您将需要验证函数期望的字符集,并将其添加到DllImport属性。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。