- 浏览: 508192 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (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应用
本文将详细为大家介绍一个java调用.net DLL的方法,以实现特殊的客户的特殊要求:“在Java项目中必须使用其提供的用.net写的DLL加密机制!”
环境与工具:
◆.net framework 3.5 C#
◆java jdk1.5, Tomcat 5.5
◆jacob-1.15-M3
实现例子:
一、C# 制作Com组件
新建一个Class 项目,取名TestCom
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; namespace TestCom{ [Guid("E9BCF867-CD81-40d0-9591-ED28D1ED2B53")] public interface IEncrypt{ [DispId(1)] string GetEncrypt(string str,string str2); } [Guid("33A6E58D-E1F5-4b53-B2E2-03B9F8BA2FAD"), ClassInterface(ClassInterfaceType.None)] public class Encrypt:IEncrypt{ public Encrypt(){} public string GetEncrypt(string str,string str2){ return "Test:ï | "+str+"|"+str2; } } }
打开 Project--> Properties菜单 在Application标签中打开 Assembly Information 将Make assembly Com-Visible一项选中。再切换到Build标签将 Register for COM interop一项选中。
Guid的生成:打开Visual Studio Command Prompt 输入guidgen 命令调出工具。类型选择Registry Format,点击New Guid,然后COPY出来。
[DispId(1)]为函数的标识。如果有多个函数可相应的在函数前面加[DispId(2)], [DispId(3)]…
设置强名称:打开Visual Studio Command Prompt 输入:sn -k TestComkey.snk 生成TestComkey.snk 文件
打开 Project--> Properties菜单 在Signing标签中选中 Sign the assembly,选择刚刚生成的强名称文件TestComkey.snk
编译程序Debug目录中会生成 TestCom.dll 和TestCom.tlb
手工注册Com方法:
打开Visual Studio Command Prompt进入Debug目录,运行命令注册:
regasm TestCom.DLL /tlb:TestCom.tlb
gacutil -i TestCom.DLL (执行这个命令需要TestCom.DLL 具有强名称)
二、Java调用Com
部署jacob
◆在开发环境中引入jacob.jar
◆拷贝jacob-1.15-M3-x86.dll 文件到 C:\Windows\System32目录,如果是Web应用的话还需要拷贝到jdk1.5.0_16\bin目录(jdk安装目录下的bin目录)
java调用代码
import com.jacob.activeX.ActiveXComponent; import com.jacob.com.ComThread; import com.jacob.com.Dispatch; import com.jacob.com.Variant; public class test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub try{ ActiveXComponent dotnetCom = null; dotnetCom = new ActiveXComponent("TestCom.Encrypt"); Variant var = Dispatch.call(dotnetCom, "GetEncrypt","str1","str2"); String str = var.toString(); }catch(Exception ex){ ex.printStackTrace(); } } }
这便完成了Java调用.net DLL的方法!
发表评论
-
程序集与托管模块
2010-10-26 16:22 1208本文是为了学习程序集而整理的网上资料,主要包括两个部分,概念和 ... -
.NET程序集
2010-10-26 15:03 2201【主要内容】@将源代码 ... -
strong-named
2010-10-26 14:48 852前段时间自己整理的一个有关strong-named assem ... -
CLR笔记(二)
2010-10-26 13:53 9456.类型和成员基础 1.Class的可见性有publi ... -
CLR笔记(一)
2010-10-26 13:22 17451.CLR的执行模型 ... -
Java调用C#
2010-10-25 22:49 1816Java调用C# 下载: http://www.co ... -
Managed Extensions for C++ Reference
2010-10-25 18:10 1353Managed Extensions for C++ Refe ... -
注入托管代码
2010-10-25 17:18 1698前言:本文的重点不在 ... -
jni调用dll及dll已用其它dll的资料
2010-10-25 16:00 870http://blog.csdn.net/KONGKONGWJ ... -
C# method calls within a Java program
2010-10-23 16:11 1036.net产生的比java晚,其类库的封装在某些方面也比ja ... -
走近COM Interop
2010-10-23 15:40 1592走近COM Interop—— RCW ... -
get chartobjects from VB.net
2010-10-18 10:34 1308Excel.Sheets sheets = oWB.Works ... -
VB.NET调用DLL实现方法解析
2010-10-13 10:43 3427VB.NET开发平台 ... -
VB.net 的Me My MyBase MyClass
2010-10-11 23:46 1986第一次接触 Visual Basic 中的 Me、My、M ... -
使用.Net访问Office编程接口(PIA和IA的区别)
2010-10-11 10:25 3457在这篇文章里面,我将向大家介绍如何在.Net中访问Offi ... -
Exposing .net Components to Com
2010-10-11 09:47 789http://www.codeproject.com/KB/C ... -
vb.net 封装组件成com的方法
2010-10-10 17:16 1499前几天一直在研究如何将.net的组件封装成com供非托管代码调 ... -
Writing an Activex control in VB.net
2010-10-09 22:33 1381The problem with that example i ... -
VB set Excel color
2010-10-08 17:30 904Sub Macro3()'' Macro3 Macro' ' ...
相关推荐
COM 组件设计与应用(七)——编译、注册、调用 COM 组件设计与应用(八)——实现多接口 COM 组件设计与应用(九)——IDispatch 接口 for VC6.0 COM 组件设计与应用(十)——IDispatch 接口 for VC.NET COM 组件...
安装:要在机器上安装Jmail组件,其实就是一个“Jmail.dll”,一般会被安装到C:\windows\system32\目录中。如果下载到的仅仅是Jmail.dll这个文件,就可以手动放到这个目录,不过别的目录应该也可以,我没试过。 二...
在系统目录(如c:winnt或c:windows)的system32子目录中可以找到一个名称为 cdosys.dll的文件,我们可以通过ASP.NET调用此COM组件来实现Email的发送。cdosys构建在SMTP协议和NNTP协议之上, 并且作为Windows2000 ...
摘要:VC/C++源码,系统相关,COM服务, 组件注册 VC++.NET取消COM服务组件注册的程序,在窗口中点击右键即可看到取消COM组件的窗口。编辑注:如果测试中导致Windows部分功能不可用,则可通过恢复组策略的方式的恢复,...
注册COM服务组件,对象为编译成DLL文件格式的组件或控件,适合初级学习者的代码,程序运行效果如运行截图所示,VC源码请运行于VisualStudio2010环境下。 运行环境:Windows/Visual C/C++
1、调用COM组件需要先注册对应的组件DLL(CppSvc.DLL) 2、VB.net/C#工程需要.net framwork 4.8(可以根据你自己的环境修改工程属性) 3、默认选中了x64配置,所有的DLL/组件/调用客户端都生成Windows x64代码,不要...
regasm.exe路径 C:\Windows\Microsoft.NET\Framework64\v4.0.30319 单独建立一个文件夹放入dll,tlb文件 将以上路径配置到电脑环境变量PATH即可在管理员权限下的控制台输入一下命令 1、cd /d dll路径 然后回车,...
COM_组件设计与应用(07)—编译、注册、调用 COM_组件设计与应用(08)—实现多接口 COM_组件设计与应用(09)—IDispatch_接口(VC6) COM_组件设计与应用(10)—IDispatch接口for VC.NET COM_组件设计与应用(11)—...
深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述的补白 asp.net 运行机制初探(httpModule加载) 利用反射来查看对象中的私有变量 关于反射中创建类型实例的两种方法 ASP.Net应用程序的多进程模型 NET委托...
我文章里面有注意事项https://blog.csdn.net/BooleanWater/article/details/102845245 用C++写的com自注册进程内组件加测试程序
NULL 博文链接:https://sheng.iteye.com/blog/1839504
1.2 ASP.NET组件模型 11 1.2.1 组件交互模型 11 1.2.2 runat属性 12 1.2.3 ASP.NET服务器控件 15 1.3 ASP.NET开发栈 16 1.3.1 表示层 16 1.3.2 页面框架 17 1.3.3 ...
先运行Com目录下的RegisterForCOM.bat进行组件注册,然后才能使用。 使用方法可以参考 delphi目录下demo 程序。 二、条码识别组件(BarcodeScanNet.dll) 1.功能说明 BarcodeScanNet是 .Net 下的条形码图像扫描...
用来开发麦克风录音的一系列功能。下载后用regsvr32注册。 在.net COM组件中引用。
基于组件编程有很多优势:代码重用,团队支 基于组件编程....NET .NET替代了 替代了COM COM,提供了一个全新模 ,提供了一个全新模 型:语言独立的,注册自由,版本明确 型:语言独立的,注册自由,版本明确 的 的……
这部分的示例代码叫做ComP6srcDNet中的ComP5工程,呵呵,有点眼熟吧,其实我的目的只是想介绍.net部分,所以COM和MFC部分引自杨老师的“COM 组件设计与应用(七)——编译、注册、调用” ,只有Use_Net的代码是我写...
该程序可以是.aspx页面中的处理程序,也可以是开发者自定义的类库,或者COM组件等。事件驱动处理如图4-7所示。 图4-7 页面框架的事件驱动处理模型 上图则说明了当一个浏览者通过浏览器触发ASPX页面时,浏览器、...
包括两个例子: 1 用vc6.0写的com ,并在vc6.0中 用三种方法调用。可以在.net中编译通过 2 用c#写的com, 用.net c++ 调用 注意:如果不编译com项目,在使用前需要注册com
简单破解Aspose.Words for .NET 9.7.0 官方更新时间为02-06-2011,只是去除未注册情况下文档中的"Evaluation Only. Created with Aspose.Words. Copyright 2003-2010 Aspose Pty Ltd."字样.其他地方未作修改,因此你不...
与此相同的还有CDONTS.NewMail,Persits.MailSender,IISmail.Iismail等等,他们唯一区别就是jmail只需要注册一个dll组件即可被调用,而其他则需要在iis上设置发布smtp服务器 (1)Body(信件正文) : 字符串 ...