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

VB传递参数给dll,该怎么处理

2012-02-06 
VB传递参数给dllDll是用VC写的, 其函数原型为:externC BOOL PASCAL EXPORT StarConventionCheck(LPVOID

VB传递参数给dll
Dll是用VC写的, 其函数原型为:
extern "C" BOOL PASCAL EXPORT StarConventionCheck(LPVOID strarTime,LPVOID overtime,BOOL isTimeFlag )

我用VB传参数是这们传的:
Public Declare Function StarConventionCheck Lib "NetInf.dll" (StartTime As String, EndTime As String, ByVal isTimeFlag As Integer) As Long

[b][/b]Private Sub cmdCheckComHis_Click()
  Dim Return_RevComm As Long
  Dim hwnd_lng As Long
  Dim StartTime As SYSTEMTIME
  Dim EndTime As SYSTEMTIME
  Dim Byte_BeginTime(64) As Byte
  Dim Byte_EndTime(64) As Byte
  Dim FileTime_BeginTime As FILETIME
  Dim FileTime_EndTime As FILETIME
   
  With StartTime
  .wYear = CheckBeginData.Year
  .wMonth = CheckBeginData.Month
  .wDay = CheckBeginData.Day
   
  .wHour = 0
  .wMinute = 0
  .wSecond = 0
  .wMilliseconds = 0
  End With
   
  With EndTime
  .wYear = CheckEndData.Year
  .wMonth = CheckEndData.Month
  .wDay = CheckEndData.Day
   
  .wHour = 24
  .wMinute = 0
  .wSecond = 0
  .wMilliseconds = 0
  End With  
   
  SystemTimeToFileTime StartTime, FileTime_BeginTime
  SystemTimeToFileTime EndTime, FileTime_EndTime
   
  Call CopyMemory(Byte_BeginTime(0), FileTime_BeginTime, 64)
  Call CopyMemory(Byte_EndTime(0), FileTime_EndTime, 64)  
 
  Return_RevComm = StarConventionCheck(Byte_BeginTime(0), Byte_EndTime(0), 1)  
End Sub

VB一调用时就会异常,请求高手出现...

[解决办法]
第三个参数改成Long是可以的,传0和1。
前两个参数传首地址的话,也可以改成Long,前面加上Byval。

热点排行