基础功不扎实,现在被卡住了,dll的数组参数传递,郁闷啊!请大虾们都来指教 ( 积分: 100 )

  • 主题发起人 主题发起人 maoke
  • 开始时间 开始时间
procedure InitTotalBuffer(var TotalReceive:pTotalReceived);
这样行不行啊?
 
传递数组头指针的时候一定要跟一个形参用于指明该数组的长度(个数)
 
我传该指针进去的时候,发现指针所指向的地址会发生变化,比如说:在调用者里,指针指向$fdcfc,到了dll中,指针却指向了$6f103311,这会是什么原因引起的呢?
 
你主程序和DLL声明的一致么,比如DLL中是stdcall,主程序中不是
 
在java中只要你定义两个对象
类型说明,dll和主函数中都有:
rTotalReceived=record
PackVaild : Byte;
RevBuf : array [1..2048] of byte;
PackType : byte;
PackLen:Byte;
end;
TTotalReceived=Array [0..99] of rTotalReceived;
pTotalReceived=^TTotalReceived;
就是不同对象,哪怕所有的变量和参数名字都一样
是不是这个问题?
 

Similar threads

回复
0
查看
978
不得闲
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部