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

关于procedure类型的参数有关问题

2012-03-11 
关于procedure类型的参数问题想把下面一段代码封装成DLL供VB调用proceduredefragmem(limit:integerx:proc

关于procedure类型的参数问题
想把下面一段代码封装成DLL供VB调用
procedure   defragmem(limit   :   integer;   x:   proc);
函数defragmem的类型为procedure   参数x:   proc(procedure)
那么我在VB里面需要相应的把类型改为什么样的呢。谢谢各位了。

library   Project2;

uses
    SysUtils,
    Classes,
    Windows;
type   proc   =   procedure;
var   bussy   :   boolean;
//limit   dalam   satuan   megabyte


{$R   *.res}
procedure   defragmem(limit   :   integer;   x:   proc);stdcall;
var   tab   :   array   [0..1024]   of   pointer;
        i   :   integer;
        p   :   pointer;
        lim   :   integer;
begin
          if   bussy   then   exit;
          bussy:=true;
          lim:=limit;
          if   lim> 1024   then   lim:=1024;
          for   i:=0   to   lim   do   tab   [i]:=nil;
                  for   i:=0   to   lim-1   do
                  begin
                            p:=VirtualAlloc(nil,   1024*1024,   MEM_COMMIT,
                                                            PAGE_READWRITE   +   PAGE_NOCACHE);
                            tab[i]:=p;
                            asm
                                  pushad
                                  pushfd
                                  mov       edi,   p
                                  mov       ecx,   1024*1024/4
                                  xor       eax,   eax
                                  cld
                                  repz     stosd
                                  popfd
                                  popad
                            end;
                            if   assigned(x)   then   x;


                  end;
                  for   i:=0   to   lim-1   do
                  begin
                            VirtualFree(Tab[i],   0,   MEM_RELEASE);
                            if   assigned(x)   then   x;
                  end;
          bussy:=false;
end;
exports   defragmem;
begin
          bussy:=false;
end.


[解决办法]
非标准的参数,VB调用不了的

热点排行