- 浏览: 505390 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (299)
- Oracle(pl/sql_Erp_Pro*C) (69)
- 设计模式 (4)
- spring (23)
- ext (17)
- apache开源项目应用 (4)
- jquery (16)
- 生活琐事 (8)
- 下载资源 (23)
- mysql (2)
- Eclipse使用积累 (5)
- 报表类(报表/图表) (13)
- php (4)
- Web多彩文本框 (3)
- json (4)
- jqgrid (2)
- ant (2)
- java算法积累 (8)
- EL表达式/JSTL (4)
- poi (3)
- gwt (2)
- 爬网第一步 (2)
- javascript (17)
- Javaweb (8)
- tomcat (1)
- flex (1)
- Java&DB (3)
- J2SE (7)
- linux (3)
- 数据结构 (1)
- dot net (5)
- struts (1)
- ibatis (1)
- log4j (1)
- 项目管理 (1)
- Java native interface(jni,jacob......) (5)
- applet (1)
- VB.net/C#.net/JNI (20)
- css (1)
- Sqlite (1)
- servlet (1)
- REST (1)
最新评论
-
wenhurena:
能不能给一下解压密码roki.work.2017@gmail. ...
Ebs解体新書と学習資料1 -
liutao1600:
楼主写的太好了,每天学习~~
Spring_MVC(6)测试 -
liutao1600:
太好了,每天学习你的文章~~~
Spring_MVC(3)表单页面处理 -
liutao1600:
学习了,太好了
Spring_MVC(2)控制层处理 -
liutao1600:
学习了~~~
Spring_MVC(1)构建简单web应用
.net产生的比java晚,其类库的封装在某些方面也比java更优秀,更全面。比如最近在做一个OJ,看到网上的一些做法是用java+c++,C++用作所提交程序的测试。c++虽然好,但是他的编写比较复杂。因此,我选择的是C#,用.net的类库可以很方便的获得一个进程(用户提交的程序)运行的时间和消耗的内存。下面是我的测试程序: 首先我在网上查了一些资料: C# method calls within Java Program 这篇文章大概传达了这样一个意思: Java 调用C#过程: 上面这篇文章我搜了一下,已经被转载了无数次了,关于网上c++调c# dll基本都是这篇文章 然后再用google搜一下jni的例子是一堆一堆的。 ==================================================================== 了解了java调c#在简单的过程,再了解了jni和c++如何调c#,这样用java调c#应该就没什么问题了.但是本人在做的时候还有一点小小的路径问题,报了一个jvmunexpected exception,让我真是郁闷了好久。 ==================================================================== 先写一个java类 然后用javah命令产生.h的文件(网上jni的文章介绍的很多) 我使用的IDE是NetBeans,生成的.class文件和源文件不在同一个文件夹下,把TestJNI.class拷贝到TestJNI.java同一目录下。然后运行cmd.exe在src目录下,javahcom.ypoj.jni.TestJNI 新建一个c++的类库,本人使用的是VS2008,这里需要注意的是,在刚刚讲到原理的时候是java->c++dll->managedc++->c#,然而vc++里面已经集成了managedc++,所以其实我做的时候并没有把c++和managedc++分开来做,因为vs2008里已经集成好了,具体做法是:选择《项目》->《属性页》->《配置属性》->《常规》->《公共语言运行库支持》,选择公共语言运行库支持(/clr)。这样就可以了 用javah生成的com_ypoj_jni_TestJNI.h 这里我们就实现这个方法 JNIEXPORT jint JNICALLJava_com_ypoj_jni_TestJNI_add 在编译的时候会提示需要加入两个头文件,分别是jni.h和jni_md.h,这两个文件可以在你本机安装的jdk的文件夹里搜到。如果编译的时候说找不到jni.h,则include的时候写成 #include "jni.h",<>改成""。 接下来先完成C#的 Dll 最后实现C++里的那个函数 首先把生成的C#的Dll拷贝到C++源文件的同一个目录下,也就是和C++的dll,.cpp文件放在同一个目录,这里不是把C#的dll放在c++dll同一目录(Debug目录),虽然放在Debug目录也可以(改变引入的路径),但是当用java再调的时候就会出错了。 注意:一定先把c#的dll拷到c++的项目里,然后再去写那个jni函数 c++ 主 DLL 文件 生成c++的dll, 最后把c#和c++的dll拷贝到library.path下,我把他们拷贝在了jdk的bin目录下 运行结果 run:
Java -> JNI -> C++dll <== Managed C++==> C# dll
(JNIEnv *, jobject, jint, jint);
40
成功生成(总时间:0 秒)
发表评论
-
程序集与托管模块
2010-10-26 16:22 1197本文是为了学习程序集而整理的网上资料,主要包括两个部分,概念和 ... -
.NET程序集
2010-10-26 15:03 2190【主要内容】@将源代码 ... -
strong-named
2010-10-26 14:48 843前段时间自己整理的一个有关strong-named assem ... -
CLR笔记(二)
2010-10-26 13:53 9356.类型和成员基础 1.Class的可见性有publi ... -
CLR笔记(一)
2010-10-26 13:22 17341.CLR的执行模型 ... -
Java调用C#
2010-10-25 22:49 1805Java调用C# 下载: http://www.co ... -
Managed Extensions for C++ Reference
2010-10-25 18:10 1344Managed Extensions for C++ Refe ... -
注入托管代码
2010-10-25 17:18 1689前言:本文的重点不在 ... -
jni调用dll及dll已用其它dll的资料
2010-10-25 16:00 855http://blog.csdn.net/KONGKONGWJ ... -
走近COM Interop
2010-10-23 15:40 1581走近COM Interop—— RCW ... -
get chartobjects from VB.net
2010-10-18 10:34 1298Excel.Sheets sheets = oWB.Works ... -
VB.NET调用DLL实现方法解析
2010-10-13 10:43 3414VB.NET开发平台 ... -
VB.net 的Me My MyBase MyClass
2010-10-11 23:46 1978第一次接触 Visual Basic 中的 Me、My、M ... -
使用.Net访问Office编程接口(PIA和IA的区别)
2010-10-11 10:25 3449在这篇文章里面,我将向大家介绍如何在.Net中访问Offi ... -
Exposing .net Components to Com
2010-10-11 09:47 781http://www.codeproject.com/KB/C ... -
.net Com组件注册
2010-10-11 09:30 1918本文将详细为大家介绍一个java调用.net DLL的方法,以 ... -
vb.net 封装组件成com的方法
2010-10-10 17:16 1488前几天一直在研究如何将.net的组件封装成com供非托管代码调 ... -
Writing an Activex control in VB.net
2010-10-09 22:33 1371The problem with that example i ... -
VB set Excel color
2010-10-08 17:30 897Sub Macro3()'' Macro3 Macro' ' ...
相关推荐
在C#环境下调用JAVA程序的实例代码,添加dll文件后,引用package ,创建环境变量,即可调用java写的类及构造方法
(参数)Placement of method parameters within method declarations or method calls (元素排列)Standard ordering of elements within a class (注释格式)Formatting of documentation within element ...
Calling a C Function from a Java Program 936 Numeric Parameters and Return Values 942 String Parameters 944 Accessing Fields 950 Encoding Signatures 954 Calling Java Methods 956 Accessing Array ...
Remote Program Calls:SAP RFC介绍
The program next reads in an index k from the user, then calls a method readValue(int [ ] a, int k) that would return the value of a[k]. The main program displays the value a[k]. If the index is out ...
Java Web Services shows you how to use SOAP to perform remote method calls and message passing;how to use WSDL to describe the interface to a web service or understand the interface of someone else's ...
Allows a low-privileged COM client to delegate calls to a COM server that is running under a higher-priveleged NT user account.(41KB)
Java Web Services shows you how to use SOAP to perform remote method calls and message passing; how to use WSDL to describe the interface to a web service or understand the interface of someone else's...
A functional introduction to Twilio for experienced C# developers. Ed Freitas will guide readers towards developing voice and messaging apps in C# using Twilio. With just some experience with C#, ...
C#调用API串口通信C# calls API serial communication
4.3.1 A Simple Spawn Controller..................................49 4.3.1.1 Script Breakdown................................52 4.3.2 Trigger Spawner...........................................56 4.3.3 ...
Allows arbitrary calls, or rejects any method calls that were not explicitly expected Specifies sequenced and default return values Supports parameters and indexes Specifies dynamic return values ...
Tracing Oracle Internal Calls
java经典的猫叫程序,适合对面向对象概念的深入理解,运行好用
Callbacks and events are invoked on the thread ... Method calls will block until that thread becomes available. An exception will be generated if the thread does not become available in a timely manner.
参数位置(Placement of method parameters within method declarations or method calls ) 元素标准排列(Standard ordering of elements within a class ) 注释格式(Formatting of documentation within ...
考虑到经常打电话查询话费使用情况,觉得甚是麻烦,于是就想开发个小程序来简化这个过程,因此就有了下面这个小程序,之所以称之为小程序,是因为它的功能很单一,就是查询话费使用情况和话费余额,但这也是日常生活...
JCONTROL provides an easy way to integrate a full range of java GUIs from the java.awt and javax.swing libraries into MATLAB. Example: obj=JCONTROL(Parent, Style); obj=JCONTROL(Parent, Style,... ...
#学习的101个经典例子,例子个个经典,涵盖C#的方方面面,带有说详尽的注释 Advanced - Multithreading - How-To Async Calls Advanced - Remoting - How-To TCP Remoting Advanced - Serialization - How-To ...