vc dll 保护
场景:
请教:vb.net调用vc写的dll出错:报尝试读取或写入受保护的内存
vb,net调用dll中的unsigned char getbitchar(IN struct st cl,OUT unsigned char b[]),报尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
这个函数在vb.net下应该怎么写?
------解决方案--------------------
1.首先你要定义好结构体
请教:vb.net调用vc写的dll出错:报尝试读取或写入受保护的内存
vb,net调用dll中的unsigned char getbitchar(IN struct st cl,OUT unsigned char b[]),报尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
这个函数在vb.net下应该怎么写?
------解决方案--------------------
1.首先你要定义好结构体
- VB.NET code
<StructLayout(LayoutKind.Sequential, Pack:=1)> _ Public Structure st 'INT型 Dim countAs Int32 'Char[]数组类型 <MarshalAs(UnmanagedType.ByValArray, ArraySubType:=UnmanagedType.ByValTStr, Sizeconst:=80)> _ Dim string() As Byte End Structure
------解决方案--------------------
Public Structure cardlayout
Dim a As Int16 ===>int32
Dim b As Int16 ===>int32
Dim c As Int16 ===>int32
Dim d As Int16 ===>int32
Dim e As Int16 ===>int32
Dim f As Int16 ===>int32
Dim g As Int16 ===>int32
Dim h As Int16 ===>int32
Dim i As Int16 ===>int32
Dim j As Int16 ===>int32
Dim k As Int16 ===>int32
Dim l As Int16 ===>int32
Dim m As Int16 ===>int32
Dim n As Integer
End Structure
<DllImport("your.dll", CharSet:=CharSet.Ansi) > Public Shared Function SetStaticStruct(Byval str() As Byte, ByRef cl As cardlayout)
End Function
<DllImport("your.dll", CharSet:=CharSet.Ansi) > Public Shared Function getbitchar(ByRef cl As cardlayout, ByValstr() As Byte)
End Function