Delphi做的动态链接库,delphi调用。
静态方式调用没有问题,完全正确。
改为动态方式,出AV问题或privileged instruction at 0x...dll部分
function mymax(i,j: integer): integer;
begin
  if i>=j then Result:=i            <====如果这里改成Result:=2,就没问题
  else Result:=j;
  showmessage('OK');
end;调用
type TmyMax = function(j,j: integer): integer;procedure TForm1.Button1Click(Sender: TObject)
var
  i,j,k: integer;
  mhnd: THandle;
  iMax: TmyMax;
begin
  mhnd:=LoadLibrary('mydll.dll');
  if mhnd>0 then
    @iMax:=GetProcAddress(mhnd,'mymax');
    i:=10;
    j:=4;
    if not (@iMax=nil) then k:=iMax(i,j);   
                <===这里k一般等于4487576这样的一个数,而不是10
    FreeLibrary(mhnd);
  end;
end;