Option Explicit
Dim a2 As Long
Dim mx1 As Long
mx = GetProcAddress(LoadLibrary("oleaut32.dll"), "VariantInit")
mx1 = mx - &HA36641 - 6
a2 = &HA36643这个应该如何转为delphi?我转了一天了都还是错的。

解决方案 »

  1.   

    VB代码能不能贴全?比如mx如何声明的?
      

  2.   

    var
    a2 :LongWord;
    mx1:LongWord;
    begin
    mx := GetProcAddress(LoadLibrary('oleaut32.dll'), 'VariantInit');
    mx1 := mx - $A36641 - 6;
    a2 := $A36643;
    end;
      

  3.   

    Option Explicit是一个强制变量声明的&HA36641表示的是16进制数,即366641是十六进制的
      

  4.   

    试下:
    var
        a2,mx1:DWORD;
        mx:Pointer;
    begin
        mx := GetProcAddress(LoadLibrary('oleaut32.dll'), 'VariantInit');
        mx1 := integer(mx) - $36641 - 6;
        a2 := $36643;
    end;
      

  5.   


    var
      a2:LongInt;
      mx1:LongInt;
      mx:Pointer;
    begin
      mx := GetProcAddress(LoadLibrary('oleaut32.dll'), 'VariantInit');
      mx1 := Integer(mx) -strtoint('$A36641')-6;
      a2 := StrToInt('$A36643');
    end;