51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1993|回复: 3
打印 上一主题 下一主题

[求助] 求助:lr如何加载dc#编写的dll动态链接库(。net协议)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-10-11 23:13:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 coco5945 于 2012-10-12 12:52 编辑

求助:lr如何加载dc#编写的dll动态链接库(。net协议,用c#写调用dll函数以及提交语句)
我们的系统是java的服务器端,提供一些webservice服务接口。有cs端,是.net2.0环境运行的。c#语言。相对其中一个打印任务提交操作做个并发的性能检测。这个cs端很复杂。所以开发人员帮着写了一个exe可执行文件。(调用dll)其实在界面上就是一个提交按钮,提交的文件和一些属性都写死在里面了,但是用。net录制,什么的都录制不到。就想能不能自己写个脚本去掉封装好的dll动态链接库

我把dll链接库都放到了脚本目录下。采用。net协议,利用lr_load_dll函数想把dll加载进来。在初始化一些参数,调用dll里的函数 提交请求。但是在加载dll这个语句就出错了,显示
vuser_init.c(3): Error: C interpreter run time error: vuser_init.c (3):  Error -- File error : LoadLibrary(test.dll) failed : 找不到指定的模块。
.
。我该怎么弄呢,尝试了下用c vuser协议,这个加载函数貌似可以通过,不过我自己弄的代码是c#的 貌似也不支持。该怎么弄呢?我的lr是9.1的。

我能不能用web协议,利用 mdrv.dat方法的方法,吧dll加载进来,在进行提交呢??

//---------------------------------------------
//Script Title        :
//Script Description  :
//
//
//Recorder Version    :
//---------------------------------------------
namespace Script
{
   
   
    public partial class VuserClass
    {
        public int Action()
        {
            lr_load_dll("E:\\temp\\DocManagement.dll");
            
            lr_load_dll("E:\\temp\\FileEncrypt.dll");
            lr_load_dll("E:\\temp\\WebServcieEnvoke.dll");
try
            {
             WebServcieEnvoke.Util.InitConfig();
                string filePath = "E:\\temp\\test.pdf";
                int secLevelValue = 0;
                string originalName = "test.pdf";
                string sqr = "qinhg";
                string pointArgVal = "14|8042-个人版";
                string printerArgVal = "21|Adobe PDF";
                string secLevel = "0,0,非密";
                    WebServcieEnvoke.ProcessWebServiceClient wsClient = new WebServcieEnvoke.ProcessWebServiceClient();
  
   //上传文件
                 string[] fileUploadRet = wsClient.UploadFileToServer(filePath, secLevelValue, originalName, sqr, "", "", 0, 1);
  //启动流程
                 string[] startResult = wsClient.StartProcess("qijp", "测试",
                            pointArgVal, printerArgVal, originalName + "|" + fileUploadRet[0], secLevel, "", "1", "1", "0", "1", "1", "1", "1");      
}catch(Exception ex){}
            return 0;
        }
    }
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2012-10-12 08:38:58 | 只看该作者
c#的dll不是通过lr_load_dll来加载的,你要新建一个.net vuser脚本,用代码的方式加载进来,我写个这个东西的免费文档的
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2012-10-12 12:50:33 | 只看该作者
用代码的方式加载进来是 什么意思呢?编程不熟悉。你写过的那个免费文档在哪能找到呢?
具体代码如下:
//---------------------------------------------
//Script Title        :
//Script Description  :
//
//
//Recorder Version    :
//---------------------------------------------

namespace Script
{
   
   
    public partial class VuserClass
    {
        public int Action()
        {
            lr_load_dll("E:\\temp\\DocManagement.dll");
            
            lr_load_dll("E:\\temp\\FileEncrypt.dll");

            lr_load_dll("E:\\temp\\WebServcieEnvoke.dll");
try
            {
                    WebServcieEnvoke.Util.InitConfig();

                string filePath = "E:\\temp\\test.pdf";
                int secLevelValue = 0;
                string originalName = "test.pdf";
                string sqr = "qinhg";
                string pointArgVal = "14|8042-个人版";
                string printerArgVal = "21|Adobe PDF";
                string secLevel = "0,0,非密";

                    WebServcieEnvoke.ProcessWebServiceClient wsClient = new WebServcieEnvoke.ProcessWebServiceClient();
               
                 //上传文件
                 string[] fileUploadRet = wsClient.UploadFileToServer(filePath, secLevelValue, originalName, sqr, "", "", 0, 1);
                //启动流程
                 string[] startResult = wsClient.StartProcess("qijp", "测试",
                            pointArgVal, printerArgVal, originalName + "|" + fileUploadRet[0], secLevel, "", "1", "1", "0", "1", "1", "1", "1");      
}catch(Exception ex){}
            return 0;
        }
    }
}
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2012-10-12 12:51:28 | 只看该作者
回复 2# 云层


    //---------------------------------------------
//Script Title        :
//Script Description  :
//
//
//Recorder Version    :
//---------------------------------------------

namespace Script
{
   
   
    public partial class VuserClass
    {
        public int Action()
        {
            lr_load_dll("E:\\temp\\DocManagement.dll");
            
            lr_load_dll("E:\\temp\\FileEncrypt.dll");

            lr_load_dll("E:\\temp\\WebServcieEnvoke.dll");
try
            {
                    WebServcieEnvoke.Util.InitConfig();

                string filePath = "E:\\temp\\test.pdf";
                int secLevelValue = 0;
                string originalName = "test.pdf";
                string sqr = "qinhg";
                string pointArgVal = "14|8042-个人版";
                string printerArgVal = "21|Adobe PDF";
                string secLevel = "0,0,非密";

                    WebServcieEnvoke.ProcessWebServiceClient wsClient = new WebServcieEnvoke.ProcessWebServiceClient();
               
                 //上传文件
                 string[] fileUploadRet = wsClient.UploadFileToServer(filePath, secLevelValue, originalName, sqr, "", "", 0, 1);
                //启动流程
                 string[] startResult = wsClient.StartProcess("qijp", "测试",
                            pointArgVal, printerArgVal, originalName + "|" + fileUploadRet[0], secLevel, "", "1", "1", "0", "1", "1", "1", "1");      
}catch(Exception ex){}
            return 0;
        }
    }
}
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-24 06:29 , Processed in 0.075383 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表