51Testing软件测试论坛

标题: 在wr里是如何对dll文件进行操作的? [打印本页]

作者: 肚皮    时间: 2005-2-2 18:46
标题: 在wr里是如何对dll文件进行操作的?
在wr里是如何对dll文件进行操作的,例如我有一个dll文件是输出一个随即的字

符,那wr里又是怎么样去取到这个值,并应用于脚本?
作者: shyfish    时间: 2005-2-2 19:01
extern int division(int x, int y);   #dll export function
unload_dll("");     #unload all dlls
load_dll("mydll.dll");
result = division(8, 4);

I use it like this, and it really works
Is there any other way using it?
I don't know, if you do, tell me, thank you
作者: 肚皮    时间: 2005-2-2 21:31
我试过了,没有成功,可以编译一个成功的例子传上来吗?我觉得很有可能是我没有真正明白你的意思,或操作不对。
作者: shyfish    时间: 2005-2-3 17:01
用VC做个极其简单的dll(MFC Regular dll),只在函数里增加了一个导出函数:
__declspec(dllexport) int addInt(int x, int y)
{
        return (x + y);
}
然后编译成dll(就不用给DLL了吧?)

WR的Script如下:
extern int addInt(int x, int y);
unload_dll("");     #unload all dlls,这步可以不要,但调试的时候经常有错误发生,
#会造成很混乱的dll使用:比如错误发生之前没去unload,而你又重新编译了个dll
#则可能这次使用的是上次编译的dll,而不是重新编译过的,从而结果就会不太准确
if(load_dll("E:\\wrdll.dll") != 0)   #dll的full path
        pause("fail to load wrdll.dll");
result = addInt(2, 3);
pause(result);
unload_dll("");
#极简单,就和用WR本身的函数差不多

[ Last edited by shyfish on 2005-2-3 at 17:24 ]
作者: 肚皮    时间: 2005-2-3 17:35
ThankYou
作者: lzq123335    时间: 2006-9-8 12:40
对于调用动态库的问题,我觉得有下面局限性:
动态苦中的函数参数只能使用TSL语言里面能识别的,比如动态库中使用了CString,
__declspec(dllexport) int functionname(CString str1,CString str2)
这样的话,这个函数就不能在TSL中调用了吧?

[ 本帖最后由 lzq123335 于 2006-9-8 12:42 编辑 ]
作者: lzq123335    时间: 2006-9-8 14:36
原帖由 shyfish 于 2005-2-3 17:01 发表
用VC做个极其简单的dll(MFC Regular dll),只在函数里增加了一个导出函数:
__declspec(dllexport) int addInt(int x, int y)
{
        return (x + y);
}
然后编译成dll(就不用给DLL了吧?)

WR的Script如下: ...




为什么按你的方式,没有成功那》还是报错!!
作者: 今天有雾    时间: 2006-9-8 15:10
我也这样的问题,希望可能得到解决
作者: lzq123335    时间: 2006-9-8 17:42
顶上去!




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2