level 1
梦幻天堂ysy
楼主
做的是软件二次开发,提供的DLL文件本来是供C++二次开发用的,但我使用的编程软件是vb.net
dll文件函数手册(供C++使用的):
BOOL WINAPI VCASetVidCapDateTimeOSD( DWORD dwCard, BOOL bEnableOSD, POINT& ptTopLeft);
vb.net使用该DLL文件:
先将以上代码转为vb.net代码
Declare Function VCASetVidCapDateTimeOSD Lib "Sa7134Capture.dll" _
(ByVal dwCard As Int32, ByVal bEnableOSD As Int32, ByRef ptTopLeft As POINT) As Boolean
Structure POINT
Public X As Integer
Public Y As Integer
End Structure
调用函数(vb.net):
Public OsdTimepoint As POINT
OsdTimepoint.X = 10
OsdTimepoint.Y = 20
VCASetVidCapDateTimeOSD(0, 1, OsdTimepoint)
当执行到VCASetVidCapDateTimeOSD(0, 1, OsdTimepoint)就会出现错误“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”。是不是ByRef和ByVal的问题,我将所有的ByVal换成ByRef的话,则VCASetVidCapDateTimeOSD的返回值为False,说明执行失败。
同样的代码,用VB执行下来就没有问题(VB中得把Int32改为Long)。
求指教一下!
2013年10月18日 04点10分
1
dll文件函数手册(供C++使用的):
BOOL WINAPI VCASetVidCapDateTimeOSD( DWORD dwCard, BOOL bEnableOSD, POINT& ptTopLeft);
vb.net使用该DLL文件:
先将以上代码转为vb.net代码
Declare Function VCASetVidCapDateTimeOSD Lib "Sa7134Capture.dll" _
(ByVal dwCard As Int32, ByVal bEnableOSD As Int32, ByRef ptTopLeft As POINT) As Boolean
Structure POINT
Public X As Integer
Public Y As Integer
End Structure
调用函数(vb.net):
Public OsdTimepoint As POINT
OsdTimepoint.X = 10
OsdTimepoint.Y = 20
VCASetVidCapDateTimeOSD(0, 1, OsdTimepoint)
当执行到VCASetVidCapDateTimeOSD(0, 1, OsdTimepoint)就会出现错误“尝试读取或写入受保护的内存。这通常指示其他内存已损坏”。是不是ByRef和ByVal的问题,我将所有的ByVal换成ByRef的话,则VCASetVidCapDateTimeOSD的返回值为False,说明执行失败。
同样的代码,用VB执行下来就没有问题(VB中得把Int32改为Long)。
求指教一下!