- 浏览: 518486 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (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 1241本文是为了学习程序集而整理的网上资料,主要包括两个部分,概念和 ... -
.NET程序集
2010-10-26 15:03 2232【主要内容】@将源代码 ... -
strong-named
2010-10-26 14:48 876前段时间自己整理的一个有关strong-named assem ... -
CLR笔记(二)
2010-10-26 13:53 9836.类型和成员基础 1.Class的可见性有publi ... -
CLR笔记(一)
2010-10-26 13:22 18051.CLR的执行模型 ... -
Java调用C#
2010-10-25 22:49 1838Java调用C# 下载: http://www.co ... -
Managed Extensions for C++ Reference
2010-10-25 18:10 1389Managed Extensions for C++ Refe ... -
注入托管代码
2010-10-25 17:18 1721前言:本文的重点不在 ... -
jni调用dll及dll已用其它dll的资料
2010-10-25 16:00 899http://blog.csdn.net/KONGKONGWJ ... -
走近COM Interop
2010-10-23 15:40 1637走近COM Interop—— RCW ... -
get chartobjects from VB.net
2010-10-18 10:34 1341Excel.Sheets sheets = oWB.Works ... -
VB.NET调用DLL实现方法解析
2010-10-13 10:43 3510VB.NET开发平台 ... -
VB.net 的Me My MyBase MyClass
2010-10-11 23:46 2014第一次接触 Visual Basic 中的 Me、My、M ... -
使用.Net访问Office编程接口(PIA和IA的区别)
2010-10-11 10:25 3501在这篇文章里面,我将向大家介绍如何在.Net中访问Offi ... -
Exposing .net Components to Com
2010-10-11 09:47 813http://www.codeproject.com/KB/C ... -
.net Com组件注册
2010-10-11 09:30 1964本文将详细为大家介绍一个java调用.net DLL的方法,以 ... -
vb.net 封装组件成com的方法
2010-10-10 17:16 1539前几天一直在研究如何将.net的组件封装成com供非托管代码调 ... -
Writing an Activex control in VB.net
2010-10-09 22:33 1407The problem with that example i ... -
VB set Excel color
2010-10-08 17:30 939Sub Macro3()'' Macro3 Macro' ' ...
相关推荐
本文将详细介绍如何在C#环境中调用Java程序,通过使用Java的DLL和SDK,实现C#与Java之间的通信。我们将探讨以下几个关键知识点: 1. **P/Invoke(Platform Invoke)**:C#中的P/Invoke是.NET框架提供的一种机制,...
(参数)Placement of method parameters within method declarations or method calls (元素排列)Standard ordering of elements within a class (注释格式)Formatting of documentation within element ...
Java程序中的C#方法调用是一项技术,允许Java...提供的资源"C-method-calls-within-a-Java-program.pdf"可能详细解释了这个过程,而"javacsharp_src.zip"和"javacsharp_demo.zip"则包含了示例源代码,可供学习和参考。
JAVA application calls shell commands
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 ...
Explain the concept of encapsulation in OOP and how it is achieved in Java.Answer: Encapsulation is a fundamental principle of Object-Oriented Programming (OOP) that involves bundling data and methods...
参数位置(Placement of method parameters within method declarations or method calls ) 元素标准排列(Standard ordering of elements within a class ) 注释格式(Formatting of documentation within ...
在Java编程的世界里,有一个经典的教学实例——"Cat Calls",它旨在帮助开发者深入理解面向对象编程(Object-Oriented Programming,简称OOP)的概念。这个程序模拟了猫的叫声,通过这种方式生动地展示了类、对象、...
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 ...
在这个场景中,我们有名为"JSimpCalcWebService"的Java Web服务,它可能是由JAX-WS(Java API for XML Web Services)或者早期的JAX-RPC(Java API for XML-based Remote Procedure Calls)创建的。这些服务通常...
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)
### Remote Program Calls: SAP RFC 详解 #### 一、引言 远程程序调用(Remote Program Call, 简称 RPC)是一种计算机通信协议,它允许一台计算机上的程序调用另一台计算机上的程序,而无需了解底层网络细节。在...
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#, ...
"AsyncCalls"是Delphi中一个专门用于实现异步调用功能的单元,它包含了一系列的函数和类,帮助开发者轻松地创建非阻塞的异步操作。通过这个单元,我们可以避免因为等待某个操作完成而导致程序冻结的情况,提高应用...
在实现时,递归算法会维持一个数组a,其中a[i]代表二进制位i的状态。从0开始,递归遍历所有可能的位状态,然后输出或处理满足条件的解。 另外,N皇后问题是一个典型的回溯问题,它要求在一个N×N的棋盘上放置N个...
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 ...
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.
SAP Java JCo 3.1.7 ... The SAP JCo supports both communication directions: inbound Remote Function Calls (Java calls ABAP) as well as outbound Remote Function Calls (ABAP calls Java). 更新于:230309