DLL的问题,在线等啊,十万火急啊,!!! ( 积分: 100 )

  • 主题发起人 主题发起人 qihang2000
  • 开始时间 开始时间
Q

qihang2000

Unregistered / Unconfirmed
GUEST, unregistred user!
如何把两个参数传到DLL中。
DllFunStr('Project2.dll','Show',12,25);
DLLFunStr是我的写的调用DLL的函数。可是只有12正确传到DLL中
25传进去变成一个8位的数字串, 这是为什么,
应该如何正确调用/
100分啊。大放送啊。
 
如何把两个参数传到DLL中。
DllFunStr('Project2.dll','Show',12,25);
DLLFunStr是我的写的调用DLL的函数。可是只有12正确传到DLL中
25传进去变成一个8位的数字串, 这是为什么,
应该如何正确调用/
100分啊。大放送啊。
 
你的代码是怎么写的呢
 
function DllFunStr(sDllFileName, sFunName: PAnsiChar;
str1:integer;Str: Integer): Boolean;
//整型传参数
var
libHandle: THandle;
do
Load: TStrFunction;
begin
Result := False;
libHandle := LoadLibrary(sDllFileName);
try
if libHandle = 0 then
raise EDllLoadError.Create('找不到名称为' + sDllFileName + '的文件')
else
begin
@DOLoad := GetProcAddress(libHandle, sFunName);
if @DOLoad = nil then
raiseLastWin32Error
else
Result:=DOLoad(Str,str1);
end;
finally
FreeLibrary(libHandle);
end;
Result := true;
end;

这是我调用的函数。
 
DOLoad: TStrFunction;的声明在哪里?
估计是参数传递约定不一致,加上stdcall看看
 
exe和dll都要加:uses sharamem;
 
加上stdcall
 

Similar threads

后退
顶部