Vb.net 为函数生成器创建程序
所以我刚买了一个函数生成器,我想从我的程序连接端口。驱动程序的文件夹附带了一个vb6中的程序,因此我不需要创建完整的程序 即使我不是visual basic的专业人士,我也将几乎所有内容翻译成vb.net,但当我运行该程序时,在运行Vb.net 为函数生成器创建程序,vb.net,vb6,vb6-migration,Vb.net,Vb6,Vb6 Migration,所以我刚买了一个函数生成器,我想从我的程序连接端口。驱动程序的文件夹附带了一个vb6中的程序,因此我不需要创建完整的程序 即使我不是visual basic的专业人士,我也将几乎所有内容翻译成vb.net,但当我运行该程序时,在运行Writefile时会出现以下错误: System.AccessViolationException 我已经搜索了很多网站和论坛,尝试了几乎所有的方法,但我不知道如何修复它。当每个数据到达“writefile”时,如下所示: WriteFile(hComm, byt
Writefile
时会出现以下错误:
System.AccessViolationException
我已经搜索了很多网站和论坛,尝试了几乎所有的方法,但我不知道如何修复它。当每个数据到达“writefile”时,如下所示:
WriteFile(hComm, bytebuf_t(0), wLen, gLen, 0&)
:一个很大的数字,总是类似于42221250801565695hcomm
:115bytebuf\u t(0)
:14wlen
- 格伦:0
:(我真的不明白这一点)0&
Public Declare Function WriteFile Lib "kernel32" (ByVal hCommDev As Long, lpBuffer As Byte,
ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As Long) As Long
我还尝试使用
system.io.filestream
,但也不起作用在WriteFile
函数中怀疑使用了Long
数据类型。VB6Long
是32位整数,其中.NetLong
是64位整数。尝试将Long
更改为Integer
或System.Int32
。在常量0&
中,符号和被称为Long
类型的符号;它告诉编译器您想要传递一个长零值。只需将0
传递给函数即可。我刚刚注意到在内核32函数中有WriteFile
。请参阅以获取正确的.Net签名。很抱歉,响应太晚,因为您说问题在于数据类型,一旦我更改了它,程序就可以正常运行。非常感谢你!WriteFile
函数怀疑使用了Long
数据类型。VB6Long
是32位整数,其中.NetLong
是64位整数。尝试将Long
更改为Integer
或System.Int32
。在常量0&
中,符号和被称为Long
类型的符号;它告诉编译器您想要传递一个长零值。只需将0
传递给函数即可。我刚刚注意到在内核32函数中有WriteFile
。请参阅以获取正确的.Net签名。很抱歉,响应太晚,因为您说问题在于数据类型,一旦我更改了它,程序就可以正常运行。非常感谢你!