本项目需要调用dll进行ice接口的调用
按教材将开发提供的dll放到脚本下,调用脚本如下
vuser_init()
{
//lr_load_dll("msvcrt.dll");
//lr_load_dll("iceclient_stresstest.dll");
//lr_load_dll("ice33.dll");
lr_load_dll("iceclient_stresstest.dll");
Initialize("FeedsLogicInterface:default -h 10.2.225.208 -p 33400",1);
return 0;
}
{
//lr_load_dll("msvcrt.dll");
//lr_load_dll("iceclient_stresstest.dll");
//lr_load_dll("ice33.dll");
lr_load_dll("iceclient_stresstest.dll");
Initialize("FeedsLogicInterface:default -h 10.2.225.208 -p 33400",1);
return 0;
}
结果报:lr_load_dll 失败 CCI trace: vuser_init.c(6): ci_load_dll。。。
怎么办呢,叫来开发配了一下path还是无效,看来只能自己来了。
首先需要搞明白调用的dll里边,究竟是怎个情况,有没有其他dll
使用depends查看dll
发现这个dll依赖5个dll
ice33.dll
iceutil33.dll
stlport_vc646.dll
msvcrt.dll
kernel32.dll
于是逐个lr_load_dll
发现
msvcrt.dll
kernel32.dll
系统自带的dll是没有问题的
证明lr是没有问题的
同时这两个dll是放在system32目录的
不管37 21把其他三个dll也拷贝到system32下
再调用脚本,测试通过。
总结,遇到此类问题,一定要搞清楚dll内部的dll依赖关系。
不是脚本下有目标dll就可以成功的
本文转自elbertchen 51CTO博客,原文链接:http://blog.51cto.com/linkyou/282621,如需转载请自行联系原作者