coco5945 发表于 2012-10-11 23:13:21

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

本帖最后由 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, secLevel, "", "1", "1", "0", "1", "1", "1", "1");      
}catch(Exception ex){}
            return 0;
      }
    }
}

云层 发表于 2012-10-12 08:38:58

c#的dll不是通过lr_load_dll来加载的,你要新建一个.net vuser脚本,用代码的方式加载进来,我写个这个东西的免费文档的

coco5945 发表于 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, secLevel, "", "1", "1", "0", "1", "1", "1", "1");      
}catch(Exception ex){}
            return 0;
      }
    }
}

coco5945 发表于 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, secLevel, "", "1", "1", "0", "1", "1", "1", "1");      
}catch(Exception ex){}
            return 0;
      }
    }
}
页: [1]
查看完整版本: 求助:lr如何加载dc#编写的dll动态链接库(。net协议)