如何在LR脚本里调用DELPHI的DLL?
我使用使用 lr_load_dll 函数来调用DLL,格式是这样子vuser_init()
{
lr_load_dll("DLL名");
return
0;
}
Action()
{
变量= 参数代入内部函数
lr_output_message("变量名=%d",变量);
return
0;
}
不过由于需要传参数,就是上面说到的"变量= 参数代入内部函数"这一部分.假设DLL里有3个函数如下:
function GetFile(const SvrFileName: WideString; const LclFileName: WideString;
OnProgress: Integer): Integer; safecall;
function PutFile(const SvrFileName: WideString; const LclFileName: WideString;
OnProgress: Integer): Integer; safecall;
function Init(const ServerAddr: WideString): Integer; safecall;
在LR脚本里要怎么传参数呢?例如 变量=GetFile(参数1,参数2)?可以这样直接调用DELPHI的函数吗? 变量=GetFile(参数1,参数2)这样可以调用DLL文件的函数,但你的lr_load_dll 在vuser_init中,而你的变量在Action中不知道这样是否可行.如果都在Action中是没有问题的. 如果把 lr_load_dll("DLL名")写在ACTION里,那么每次执行ACTION的时候就会加载一次DLL,对性能没影响吗?有没完整的格式推荐一种啊:'( 如果之前定义了一个类,如TCoop = class(TAutoObject, ICoop)
DLL里的函数部分是写成:
function TCoop.GetFile(const SvrFileName, LclFileName: WideString; OnProgress: Integer): Integer;
那么我们在传参时用的是变量=TCoop.GetFile(参数1,参数2,参数3)吗
====================
是否要把DELPHI里的DLL搞成COM吗?
在C++里面只有类的静态函数才能够直接被使用,一般函数是不能直接被调用的
[ 本帖最后由 镭镭 于 2008-9-9 14:34 编辑 ] 如果你的被测应用也部署在本机上,在测试过程中加载DLL会有影响的.至于你说的调用DLL文件中的函数,把返回值赋给一个变量以DLL文件中写的函数为准,如果被调用的函数存在上下文联系,那应该都封装在一个DLL文件中.
页:
[1]