请教:如何动态调用多个DLL文件里相同函数名的函数?(100分)

  • 主题发起人 主题发起人 base7
  • 开始时间 开始时间
B

base7

Unregistered / Unconfirmed
GUEST, unregistred user!
有多个DLL文件,都包含一个相同函数名和接口参数的函数。
当我的主程序运行到某个地方时需要根据一个变量的值判断调用哪个DLL中的那个函数。
请教高手:如何实现?谢谢!
 
可以把Dll文件的文件名作为变量的值来判断调用哪个DLL中的那个函数
 
动态调用DLL文件,由变量决定调用那个DLL文件,这样就不用怕重名的函数了。
 
const
youdll1='you1.dll';
youdll2='you2.dll';
......
youproc='youproc';
dllhandle:=nil
if (youvar=1) then
dllhandle:=LoadLibrary(youdll1);
elseif (youvar=2) then
dllhandle:=LoadLibrary(youdll2);
....
if dllhandle<>nil then
GetProcAddress(dllhandle,youproc).

youproc(param1,param2...)

 
生成一个二位数组,两行,一行是变量值,另一行是对应变量值的dll文件名,要用的时候
查找一下再载入对应的dll就行了。
 
引用的时候换名称:
function doItA(): Integer; stdcall; external 'A.dll' name 'doIt';
function doItB(): Integer; stdcall; external 'B.dll' name 'doIt';
 
多人接受答案了。
 
后退
顶部