//这部分是DLL(A)中的代码
procedure LoadDLL;
var
sDllFileName: string; //存储DLL(B,C)的路径
begin
sDllFileName := ExtractFilePath(Application.ExeName) + 'R\DLLBC.dll';
RSViComDevHandle := LoadLibrary(PChar(sDllFileName));
//do something
end;
如上加载没成功!
4 个解决方案
#1
procedure LoadDLL;
var
sz: array[0..Max_Path - 1] of Char;
sDllFileName: string; //存储DLL(B,C)的路径
begin
GetModuleFileName(HInstance, sz, MAX_PATH);
sDllFileName := ExtractFilePath(sz) + 'R\DLLBC.dll';
RSViComDevHandle := LoadLibrary(PChar(sDllFileName));
end;
试试吧,这样应该可以
var
sz: array[0..Max_Path - 1] of Char;
sDllFileName: string; //存储DLL(B,C)的路径
begin
GetModuleFileName(HInstance, sz, MAX_PATH);
sDllFileName := ExtractFilePath(sz) + 'R\DLLBC.dll';
RSViComDevHandle := LoadLibrary(PChar(sDllFileName));
end;
试试吧,这样应该可以
#2
有病么,非要不放在一个目录里
#3
不放在同一个目录下就要用其他方式找到这个dll,比如增加配置文件
要不然怎么找到这个dll
要不然怎么找到这个dll
#4
1楼的方法我也使用过,可是还是不行。
3楼的应该是个可行的方法,我还是问问同事吧,谢谢了!
3楼的应该是个可行的方法,我还是问问同事吧,谢谢了!
#1
procedure LoadDLL;
var
sz: array[0..Max_Path - 1] of Char;
sDllFileName: string; //存储DLL(B,C)的路径
begin
GetModuleFileName(HInstance, sz, MAX_PATH);
sDllFileName := ExtractFilePath(sz) + 'R\DLLBC.dll';
RSViComDevHandle := LoadLibrary(PChar(sDllFileName));
end;
试试吧,这样应该可以
var
sz: array[0..Max_Path - 1] of Char;
sDllFileName: string; //存储DLL(B,C)的路径
begin
GetModuleFileName(HInstance, sz, MAX_PATH);
sDllFileName := ExtractFilePath(sz) + 'R\DLLBC.dll';
RSViComDevHandle := LoadLibrary(PChar(sDllFileName));
end;
试试吧,这样应该可以
#2
有病么,非要不放在一个目录里
#3
不放在同一个目录下就要用其他方式找到这个dll,比如增加配置文件
要不然怎么找到这个dll
要不然怎么找到这个dll
#4
1楼的方法我也使用过,可是还是不行。
3楼的应该是个可行的方法,我还是问问同事吧,谢谢了!
3楼的应该是个可行的方法,我还是问问同事吧,谢谢了!