关于DLL和主程序里面的全局变量问题。
procedure Secret16Encrypt(lpInBuffer:PChar; lpKey:PChar);
var
Secret16Encrypt: function(lpInBuffer:PChar; lpKey:PChar; lpOutBuffer:PChar): Boolean; stdcall;
OutputStr: array [0..16] of Char;
begin
FillChar(OutputStr, Sizeof(OutputStr), #0);
Initialize;
if hlib <> 0 then begin
@Secret16Encrypt := GetProcAddress(hlib, 'Secret16Encrypt');
if @Secret16Encrypt <> nil then begin
if Secret16Encrypt(lpInBuffer, lpKey, OutputStr) then
Return := OutputStr
else
Return := '函数调用错误!'
end
else
ShowMessage('加载功能模块出错!');
FreeLibrary(hlib);
end
else
ShowMessage('无法加载DLL!');
end;
上面这段代码是我从人家的一个DEMO里面拷贝出来的,它功能是就是输入一个字符串和一个Key然后得到加密结果,但是它没有通过函数返回加果,而是通过函数参数返回结果,lpOutBuffer就是返回结果,这样的效果应该在DLL怎么定义呢?
不用VAR应该怎么实现?