求助: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;
}
}
} c#的dll不是通过lr_load_dll来加载的,你要新建一个.net vuser脚本,用代码的方式加载进来,我写个这个东西的免费文档的 用代码的方式加载进来是 什么意思呢?编程不熟悉。你写过的那个免费文档在哪能找到呢?
具体代码如下:
//---------------------------------------------
//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;
}
}
} 回复 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]