急,待答,和VC写的DLL链接 ( 积分: 100 )

  • 主题发起人 主题发起人 laker6274
  • 开始时间 开始时间
L

laker6274

Unregistered / Unconfirmed
GUEST, unregistred user!
VC动态库说明:int Get_NodeTime(HANDLE icdev,LPSTR DateTime)
VB声明:Declare Function Get_NodeTime Lib "yccomm&quot
(ByVal icdev&, ByVal datetime$) As Long
VB调用:Dim strTime As String * 1000
intRet = Get_NodeTime(icdev, strTime)
没有问题
Dephi声明:function Get_NodeTime(icdev:THandle;DateTime:pchar):integer;stdcall;
function Get_NodeTime;external 'yccomm.dll';
delphi调用:var strTime:string;
intRet:=Get_Nodetime(icdev,pchar(strTime));
调用的时候就报错,出错在一个内存地址,有谁知道为什么?可能哪里出错
 
c中的DATETIME是不是一个结构?pchar(strTime)是不是有问题,随便说说
 
DateTime前面不是定义了LPSTR吗,肯定不是结构了
pchar(strTime)会是什么问题呢?为什么VB可以delphi就不行呢
 
var
buffer: array[0..255] of char;
intRet:=Get_Nodetime(icdev,@buffer);

试试,应该可以的。
 
你的说明没问题的。
但是,建议你先反汇编看看,原函数的调用协议。
我碰到一个vc的dll,居然是pascal协议
 
后退
顶部