开学时买的联通卡校务通管理系统是啥子东西

System.load 和 System.loadLibrary详解
1.它们都可以用来装载库文件,不论是JNI库文件还是非JNI库文件。在任何本地方法被调用之前必须先用这个两个方法之一把相应的JNI库文件装载。
2.System.load 参数为库文件的绝对路径,可以是任意路径。
例如你可以这样载入一个windows平台下JNI库文件:
System.load("C://Documents and Settings//TestJNI.dll");。
3. System.loadLibrary 参数为库文件名,不包含库文件的扩展名。
例如你可以这样载入一个windows平台下JNI库文件
System. loadLibrary ("TestJNI");
这里,TestJNI.dll 必须是在java.library.path这一jvm变量所指向的路径中。
可以通过如下方法来获得该变量的值:
System.getProperty("java.library.path");
默认情况下,在Windows平台下,该值包含如下位置:
1)和jre相关的一些目录
2)程序当前目录
3)Windows目录
4)系统目录(system32)
5)系统环境变量path指定目录
4.如果你要载入的库文件静态链接到其它动态链接库,例如TestJNI.dll 静态链接到dependency.dll, 那么你必须注意:
1)如果你选择
System.load("C://Documents and Settings// TestJNI.dll");
那么即使你把dependency.dll同样放在C://Documents and Settings//下,load还是会因为找不到依赖的dll而失败。因为jvm在载入TestJNI.dll会先去载入TestJNI.dll所依赖的库文件dependency.dll,而dependency.dll并不位于java.library.path所指定的目录下,所以jvm找不到dependency.dll。
你有两个方法解决这个问题:一是把C://Documents and Settings//加入到java.library.path的路径中,例如加入到系统的path中。二是先调用
System.load("C://Documents and Settings// dependency.dll"); 让jvm先载入dependency.dll,然后再调用System.load("C://Documents and Settings// TestJNI.dll");
2)如果你选择
System. loadLibrary ("TestJNI");
那么你只要把dependency.dll放在任何java.library.path包含的路径中即可,当然也包括和TestJNI.dll相同的目录。
&本文为转载!
阅读(...) 评论()java 中System.loadLibrary()调用c++Dll的路径问题 -
java 中System.loadLibrary()调用c++Dll的路径问题
当使用System.loadLibrary()调用C++ Dll 时要确定dll的路径,我试了两种方法都可以实现。
1.设定环境变量。
比如:所编辑的Dll在目录&D:/cppProjects/nativecode/release&内,就可以将这个路径下来,添加到电脑的环境变量中的path变量内即可。
2.设定项目属性。
右击项目名|选择属性properties|在左边列表内选择&Java Build Path&|在右边选项卡用选择&source&|点开项目名前的&+&号,选择&Native library location&,&Edit&选择上面&D:/cppProjects/nativecode/release&路径。(当然如果将dll拷贝到workspace下也可以用相对路径。也可右击&src&设定其properties内Native Library项。)
更多相关文章
System.loadLibrary()是我们在使用Java的JNI机制时,会用到的一个非常重要的函数,它的作用即是把实现了我们在Java code中声明的native方法的那个libraryload进来,或者load其他什么动态连接库. 算是处于好奇吧,我们可以看一下这个方法它的实现,即执行流程. ...
java中通过jacob调用dts进行数据导入导出 关键字: java jacob dts 导入导出 第一步: 下载jacob /jacob/jacobBin_17.zip 解压后将dll文件放到%JAVA_HOME%/jre/bin目录下,将jar文件放到%J ...
Java中System.getProperty的使用方法: 1,System.getProperty返回的数值,比如java.version,java.home,os.name,user.home以及user.dir等等. 2,getProperties public static Properti ...
java中递归函数的调用-求一个数的阶乘 不考虑溢出:一般只能算到69的阶乘-- 注意:0的阶乘0!=1 任何大于1的自然数n阶乘表示方法: n!=1×2×3×--×n 或n!=n×(n-1)! 用.hk
搜索0的阶乘,可以出来一个在线计算器,很实用哦!! packa ...
java中的递归调用
递归函数的定义: 答:递归函数即自调用函数,在函数体内直接或间接的调用自己,即函数的嵌套是函数本身. 2.递归方式:递归调用有直接递归和间接递归两种方式. A:直接递归:在函数中出现调用函数本身. 示例1:下面代码求斐波那契数列第n项,斐波那契数列第一和第二项是1,后面每 ...
一.命名规则 1.Java标识符 Java所有的组成部分都需要名字.类名.变量名以及方法名都被称为标识符. 关于Java标识符,有以下几点需要注意: 所有的标识符都应该以字母(A-Z或者a-z),美元符($).或者下 ...
如果你在页面里面调用了某一个条件多次,并且这个条件刚好是耗时的.可以这样,比如: def checked? return @checked unless @checked == nil @checked = get_ ...
//求一个数列的最大子序列和 #include &iostream& #include &vector& int MaxSubsequenceSum(const std::vector& ...
1 assume cs:code 2 3 data segment 4 db 9,8,7, ...
--使用存储过程的数据分页 --pageSize 一页有多少条 --pageIndex 第 ...
友情链接:
管理员邮箱:info@2009年7月 总版技术专家分月排行榜第二2009年3月 总版技术专家分月排行榜第二2009年1月 总版技术专家分月排行榜第二2005年7月 总版技术专家分月排行榜第二2005年5月 总版技术专家分月排行榜第二2005年3月 总版技术专家分月排行榜第二
优秀小版主2015年8月优秀小版主2015年9月优秀小版主2015年5月优秀小版主2015年2月论坛优秀版主
本帖子已过去太久远了,不再提供回复功能。nodejs如何调用动态链接库(dll)呢?写一个addon来处理,写此文抛砖引玉。 - CNode技术社区
//下面是代码,经过测试运行成功!
var addon = require('./build/Release/addon');
var y=addon.max(2,3);
console.log(y);
其中 dlldemo.dll 里有个 max 函数,求两个 int 整数的最大值;
#define BUILDING_NODE_EXTENSION
#include &node.h&
#include &iostream&
#include &windows.h&
#include &stdafx.h&
using namespace v8;
Handle&Value& Max(const Arguments& args) {
if (args.Length() & 2) {
ThrowException(Exception::TypeError(String::New(&Wrong number of arguments&)));
return scope.Close(Undefined());
if (!args[0]-&IsNumber() || !args[1]-&IsNumber()) {
ThrowException(Exception::TypeError(String::New(&Wrong arguments&)));
return scope.Close(Undefined());
HINSTANCE hDLL;
hDLL=LoadLibrary(&dlldemo.dll&);//加载动态链接库dlldemo.dll文件;
typedef int(*pMax)(int a,int b);//函数指针
pMax Max=NULL;
Max=(pMax)GetProcAddress(hDLL,&Max&);
int A=Max(args[0]-&NumberValue(),args[1]-&NumberValue());
//cout&&&比较的结果为&&&A;
Local&Number& num = Number::New(A);
return scope.Close(num);
//Local&Number& num = Number::New(args[0]-&NumberValue() +
args[1]-&NumberValue());
Local&Number& num = Number::New(123);
return scope.Close(num);
void Init(Handle&Object& exports)
exports-&Set(String::NewSymbol(&max&),FunctionTemplate::New(Max)-&GetFunction());
NODE_MODULE(addon, Init)
楼主,我想问你一个问题,我如果单独编译这个C文件需要动态链接库,同样编译成addon也需要,请问如何配置这个动态链接库呢?我想用第三方的库去扩展一些功能。
64位addon怎么加载32位dll,求破~
楼主,为什么LoadLibrary函数总是失败呢?我当独建一个c++项目是可以的,但放到node项目里就是加载dll失败
不可以,exe 加载 dll,dll 加载 dll ,是不能跨 32/64 的。
楼主,你这个代码验证过吗?我复制你的代码,做了小的修改,但是dll文件就是加载不成功,那个hDLL始终为空,但如果只是c++项目的话是可以加载的。
已经找到答案了,用GetLastError()得到193,我node.js是64位的,而dll是32位的,所以在win32控制台的c++项目上能加载dll而在node上却不行,看来还是自己经验不够丰富。
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
服务器赞助商为
,存储赞助商为
,由提供应用性能服务。
新手搭建 Node.js 服务器,推荐使用无需备案的

我要回帖

更多关于 联通营业厅营业时间 的文章

 

随机推荐