c2gxor这个dll在vb中调用情况如下
Dim c2gxor As New C2GXORLib.XOR
txtEncryptedText.Text = c2gxor.EncryptStringHex(txtString, txtPassword)
很正常。可我在delphi中调用出现问题。我的代码如下
TEncryptString = function(pwd: pchar; pws1: pchar): pchar; stdcall;procedure TForm1.Button1Click(Sender: TObject);
var
hfunc: HMODULE;
EncryptString: TEncryptString;
begin
hfunc := LoadLibrary('C2GXOR.dll');
@EncryptString := GetProcAddress(hfunc, 'EncryptStringHex');
Edit1.Text := EncryptString(Pchar('aaa'), Pchar('BDK%MN'));
end;
end现在执行到这句时@EncryptString := GetProcAddress(hfunc, 'EncryptStringHex');得到的时nil。所以下面的就不用谈了。
请大家帮忙看看问题在什么地方。重谢!
Dim c2gxor As New C2GXORLib.XOR
txtEncryptedText.Text = c2gxor.EncryptStringHex(txtString, txtPassword)
很正常。可我在delphi中调用出现问题。我的代码如下
TEncryptString = function(pwd: pchar; pws1: pchar): pchar; stdcall;procedure TForm1.Button1Click(Sender: TObject);
var
hfunc: HMODULE;
EncryptString: TEncryptString;
begin
hfunc := LoadLibrary('C2GXOR.dll');
@EncryptString := GetProcAddress(hfunc, 'EncryptStringHex');
Edit1.Text := EncryptString(Pchar('aaa'), Pchar('BDK%MN'));
end;
end现在执行到这句时@EncryptString := GetProcAddress(hfunc, 'EncryptStringHex');得到的时nil。所以下面的就不用谈了。
请大家帮忙看看问题在什么地方。重谢!
hfunc=0或 'EncryptStringHex'名不对
http://expert.csdn.net/Expert/topic/2597/2597861.xml?temp=.5047418
var
DllDecrypt: TdoDecrypt;
LibHandle: THandle;
begin
LibHandle := loadlibrary('Encrypt.dll');
if LibHandle = 0 then
raise EDLLLoadError.Create('Unable to Load Dll');
@DllEncrypt := GetProcAddress(LibHandle,'doEncrypt');
if not (@DllEncrypt = nil) then
result := DllEncrypt(pchar(src))
else
RaiseLastWin32Error;
...................
end;这样试一下,看行不行?
补充