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

关于char*在VB.NET中应用解决方法

2012-01-28 
关于char*在VB.NET中应用我有个DLL文件,里面有个函数是int GasInitPort(int iPort,long lBaud,char*result

关于char*在VB.NET中应用
我有个DLL文件,里面有个函数是
int GasInitPort(int iPort,long lBaud,char*results);
功能描述:打开设备
输入参数:
int iPort:端口号
long lBaud:通讯波特率
输出参数:
char * results:返回操作结果说明

我把它转化为VB为
<DllImport("ZJWXGas.dll", EntryPoint:="ZJWX_GasInitPort", SetLastError:=True, CharSet:=CharSet.Auto, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
Public Shared Function ZJWX_GasInitPort(ByVal port As Integer, ByVal baud As Long, ByVal results() As Byte) As Int16
  End Function

但是一调用这个函数就出现问题???

[解决办法]
1、DLL文件并非只有一种格式。C 开发的 dll 输出函数必须声明为 WINAPI 的才能给 C 以外的语言调用。

2、此外声明也不对,c语言的long是32位的,.net 的long 是64位的。所以

 Public Shared Function ZJWX_GasInitPort(ByVal port As Int32, ByVal baud As int32, ByVal results() As Byte) As Int32 

才对。假如不是原因 1,这样试试兴许行。

热点排行