打开vs.net 2003, 新建visual c++项目: win32 项目; 在下一个窗口点"应用程序设置", 选中"DLL", "空项目";
设置工程属性: 常规 > "使用托管扩展";
copy javacsharp_src\CPPHelloWorld\HelloWorld下的HelloWorld.cpp, Java和MCPP目录到工程;
copy javacsharp_src\CSHelloWorld\HelloWorld的CSharpHelloWorld.cs到工程;
在工程目录运行:
csc /debug /t:module CSharpHelloWorld.cs
生成CSharpHelloWorld.netmodule和CSharpHelloWorld.pdb
在vs.net中, 加入HelloWorld.cpp到工程"源文件", 生成工程;
copy debug目录下生成的HelloWorld.dll到javacsharp_src\demo;
copy 工程目录下生成的CSharpHelloWorld.netmodule到javacsharp_src\demo;
到javacsharp_src\demo目录运行:
java -jar HelloWorld.jar
输出:
Hello World, from C#!
References:
c:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc.exe
"Difference between Netmodule and Assembly file"
程序菜单: "Visual Studio .NET 2003 命令提示"
set PATH=%PATH%;c:\WINDOWS\Microsoft.NET\Framework\v3.5
后记: 使用jna直接访问dll
HelloWorld.h:
extern "C" __declspec(dllexport) void displayHelloWorld() {
// Instantiate the MC++ class.
HelloWorldC* t = new HelloWorldC();
// The actual call is made.
t->callCSharpHelloWorld();
}
HelloWorld.java:
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Platform;
public class HelloWorld {
public interface MyLibrary extends Library {
MyLibrary INSTANCE = (MyLibrary) Native.loadLibrary("HelloWorld",
MyLibrary.class);
void displayHelloWorld();
}
public static void main(String[] args) {
System.setProperty("jna.library.path", "G:\\javacsharp_src\\demo");
MyLibrary.INSTANCE.displayHelloWorld();
}
}
分享到:
相关推荐
标题"java调用c#样例"指的是使用Java语言通过Jacob库调用C#编写的动态链接库(DLL)。C# DLL通常包含.NET Framework中的方法和功能,而Java应用程序可以借助Jacob库来访问这些功能,从而实现跨语言的互操作性。 ...
在本篇文章中,我们将详细介绍如何使用 JAVA 调用 C# 编写的 DLL 文件。首先,我们需要了解什么是 DLL 文件,以及它在编程中的应用。 DLL 文件是一种动态链接库文件,它可以被多个程序同时使用,减少了代码的重复...
### Java调用C#封装的DLL方法 #### 第一种方法:Java利用JNA进行调用 **背景介绍:** 为了实现Java与C#之间的交互,一种常用的方式是通过调用C#封装的DLL文件来完成特定功能。这种方法涉及到.NET Framework与Java...
总结,Java调用C#接口主要依赖于Web服务技术,包括SOAP和RESTful。Java开发者需要理解相关Java库,如JAX-WS和JAXB,以及如何生成和使用客户端代理类。同时,考虑接口设计、数据转换、性能和错误处理等因素,以确保跨...
java调用C#封装的dll(jna,com)java调用C#封装的dll(jna,com)java调用C#封装的dll(jna,com)
Java 调用 C# 封装的 DLL 方法有两种方式,一种是使用 JNA(Java Native Access)进行调用,另一种是使用 Jacob 进行调用。 第一种方法:使用 JNA 使用 JNA 调用 C# 封装的 DLL 方法需要安装 Visual Studio 2010 ...
Java调用C#的WebService是跨平台间通信的一种常见方式,尤其在企业级应用中,可能需要集成不同语言开发的服务。本示例介绍如何在Java环境中利用Xfire库来调用C#编写的WebService服务。 首先,理解WebService的核心...
本话题聚焦于“Java调用C# DLL”,这是一个涉及到Java与.NET Framework交互的技术问题。C#编译的DLL(动态链接库)是.NET环境下的组件,而Java作为跨平台的语言,如何与之交互是一个重要的知识点。 首先,为了实现...
### JAVA调用C# DLL文件的关键步骤和技术细节 #### 一、C#编写COM组件 在实际工作中,可能需要在不同编程语言之间进行交互。例如,一个基于Java的应用程序可能需要调用用C#编写的DLL文件来实现某些功能。这通常...
本主题聚焦于“Java调用C#安全认证的Web服务”,这是一个涉及到不同语言间互操作性以及网络安全的重要话题。下面将详细阐述相关知识点。 1. **Web服务基础**: Web服务是一种基于互联网的、标准化的方式,允许应用...
本项目提供了Java调用C#实现的Thrift服务的完整代码示例,有助于理解Thrift的工作原理以及如何在实际开发中应用。 首先,Thrift通过一个名为`.thrift`的接口定义文件来描述服务。这个文件包含了一系列的结构体...
【Java调用C# COM方法】是指在Java应用程序中调用由C#编写的COM组件。由于Java本身不直接支持对.NET Framework中的COM组件进行调用,因此需要借助中间层来实现这一目标。通常有两种常见的方式:一是使用JNA(Java ...
在IT行业中,跨语言通信是常见的需求,...总的来说,Java调用C# DLL涉及了跨平台通信、语言间互操作、库调用等多个复杂知识点。通过学习和实践,你可以掌握这些技术,增强你的编程能力,应对更多复杂系统的设计和开发。
本话题主要关注如何使用Java调用由C#(ASP.NET)开发的Web服务。Web服务作为一种标准接口,允许不同平台和语言之间的应用程序进行交互。这里我们将深入探讨相关知识点。 1. **Web服务**:Web服务是一种基于网络的、...
通过上述步骤,我们成功地创建了一个 C# 的 Web Service,并且使用 Java 实现了对其的远程调用。这种跨语言的交互方式极大地增强了系统的灵活性和可扩展性,是分布式应用开发中不可或缺的一部分。在未来的工作中,...
在C#环境中,使用Visual Studio或其他开发工具创建一个新的类库项目,编写需要被Java调用的公共方法。编译完成后,生成的DLL文件将包含可供其他程序使用的函数。 3. **JNI头文件生成**: 使用Java的`javah`工具,...
Java调用C# DLL是跨语言交互的一种常见需求,特别是在企业级应用开发中,可能会遇到已有的C#组件需要在Java环境中使用的场景。Jacob(Java COM Bridge)是一个开源项目,它提供了一个Java到COM(Component Object ...
- 使用C#创建DLL,定义公共方法供外部调用。 - 在C#中使用`[DllImport]`属性声明C接口,这使得C#代码可以被C代码调用。 - 编写一个C语言的中间层,它会调用C# DLL,并提供符合JNI规范的接口。 2. **C#与C的互...
以下是使用 Jacob 调用 C# DLL 的基本步骤: 1. **引入 Jacob 库**:首先,你需要将 Jacob 相关的 JAR 包(如 jacob.jar)添加到 Java 项目的类路径中。这个 JAR 包包含了 Java 对 COM 进行操作所需的所有 native ...