帮我看看这个DLL函数参数在delphi中该怎么定义(50分)

  • 主题发起人 主题发起人 xiaoyi20
  • 开始时间 开始时间
X

xiaoyi20

Unregistered / Unconfirmed
GUEST, unregistred user!
我写的一个DLL,用ListProcess来列出当前的所有进程。
所有的进程名字存放在传递进去的 char list[][]中。
我在VC中定义的函数原形 int ListProcess(char list[MAX][MAX])
在DELPHI中我这样定义
type TBuff=Array[0..50,0..50] of char;
function ListProcess(list:TBuff):integer;stdcall;external 'funs.dll';
可惜只有list[0]中存储的字符是正确的。
请问高手,这个函数在DELPHI中该怎么定义?
 
我是这样使用的.
type PPChar = array of PChar;
function ListProcess(list:PPChar):integer;stdcall;external 'funs.dll';
tmpNum:=51;
setLength(list, tmpNum);
for i:=0 to tmpNum-1do
GetMem(list,51);
函数调用: y:=ListProcess(@list[0]):

 
我这个函数是用来列出当前所有进程的名字的。
如果按照我的定义去做的话,是可以列出来的。
但是,这是最郁闷的。
第一行也就是list[0]的进程的名称是没错的。
第二行名称就少了第一个字母,
第三行少了头两个字母,
第四行少了头三个字母。
。。。。。。。。。。。。。。
郁闷哦

我用楼上的方法写了,但编译不通过。
 
那你的这个定义不对type TBuff=Array[0..50,0..50] of char;
可能是type TBuff=Array[0..49,0..49] of char;
 
yostgxf说得没错。
并且跟我在同一时间得到答案。
 
接受答案了.
 
后退
顶部