首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

调用VC写的DLL有关问题,求教

2011-12-18 
调用VC写的DLL问题,求教请高手指教!下面是函数原型BOOLcnTest(intnumber,UCHAR*Msg,UCHAR*ResultMsg)其中

调用VC写的DLL问题,求教
请高手指教!
下面是函数原型
BOOL   cnTest(int   number,   UCHAR*   Msg,UCHAR*   ResultMsg)
其中的ResultMsg用于保存返回的结果.
在VB.net中应该如何声明呢?
这样对吗?
Private   Declare   Function   cnTest   Lib   "aTest.dll "   (ByVal   number   As   Integer,   ByRef   Msg   As   String,   ByRef   ResultMsg   As   String)   As   Boolean


[解决办法]
去掉ByRef

传入用string

传出的用StringBuilder,并分配购空间

StringBuilder sb = new StringBuilder(255)
[解决办法]
帮忙顶
[解决办法]
试试这样
Private Declare Function cnTest Lib "aTest.dll " (ByVal number As Integer, ByVal Msg() As Byte, ByVal ResultMsg() As Byte) As Boolean

Dim byte_ResultMsg(1023) as Byte
cnTest(number,Encoding.Default.GetBytes(msg),byte_ResultMsg)
Dim str_ResultMsg As String = Encoding.Default.GetString(byte_ResultMsg)

完了以后可能要去掉后面的Chr(0)字符
[解决办法]
Private Declare Function cnTest Lib "aTest.dll " (ByVal number As Integer, ByRef Msg As Byte, ByRef ResultMsg As Byte) As Boolean

dim msg(1023) as Byte
dim resmsg(1023) as Byte

cnTest(number,msg(0),resmsg(0))

热点排行