仓酷云

标题: ASP.NET网页编程之C# 制造Com组件:java挪用.net DLL的办法... [打印本页]

作者: 冷月葬花魂    时间: 2015-1-16 22:21
标题: ASP.NET网页编程之C# 制造Com组件:java挪用.net DLL的办法...
c++是语言,其实C++和java的应用范围根本就不一样的。在java应用的领域内,c++是不合适的。所以微软才搞了C#和Java对抗。</p>本文将具体为人人先容一个java挪用.netDLL的办法,以完成特别的客户的特别请求:“在Java项目中必需利用其供应的用.net写的DLL加密机制!”
情况与工具:
◆.netframework3.5C#
◆javajdk1.5,Tomcat5.5
◆jacob-1.15-M3
完成例子:
1、C#制造Com组件
新建一个Class项目,取名TestCom
代码
usingSystem;usingSystem.Collections.Generic;
usingSystem.Linq;usingSystem.Text;
usingSystem.Runtime.InteropServices;
namespaceTestCom
{[Guid("E9BCF867-CD81-40d0-9591-ED28D1ED2B53")]
publicinterfaceIEncrypt
{[DispId(1)]
stringGetEncrypt(stringstr,stringstr2);
}
[Guid("33A6E58D-E1F5-4b53-B2E2-03B9F8BA2FAD"),
ClassInterface(ClassInterfaceType.None)]
publicclassEncrypt:IEncrypt
{publicEncrypt(){}
publicstringGetEncrypt(stringstr,stringstr2)
{
return"测试"+str+""+str2;
}
}
}
翻开Project-->Properties菜单在Application标签中翻开AssemblyInformation将MakeassemblyCom-Visible一项选中。再切换到Build标签将RegisterforCOMinterop一项选中。
Guid的天生:翻开VisualStudioCommandPrompt输出guidgen命令修改工具。范例选择RegistryFormat,点击NewGuid,然后COPY出来。
[DispId(1)]为函数的标识。假如有多个函数可响应的在函数后面加[DispId(2)],[DispId(3)]…
编译程序Debug目次中会天生TestCom.dll和TestCom.tlb
手工注册Com办法:
翻开VisualStudioCommandPrompt进进Debug目次,运转命令注册:regasmTestCom.DLL/tlb:TestCom.tlb
2、Java挪用Com
部署jacob
◆在开辟情况中引进jacob.jar
◆拷贝jacob-1.15-M3-x86.dll文件到C:WindowsSystem32目次,假如是Web使用的话还必要拷贝到jdk1.5.0_16in目次(jdk安装目次下的bin目次)
java挪用代码
代码
importcom.jacob.activeX.ActiveXComponent;
importcom.jacob.com.ComThread;
importcom.jacob.com.Dispatch;
importcom.jacob.com.Variant;
publicclasstest
{
/***@paramargs*/
publicstaticvoidmain(String[]args)
{
//TODOAuto-generatedmethodstub
try
{
ActiveXComponentdotnetCom=null;
dotnetCom=newActiveXComponent("TestCom.Encrypt");
Variantvar=Dispatch.call(dotnetCom,
"GetEncrypt","哥是第一个参数","哥是第二个参数");
Stringstr=var.toString();//前往值
}catch(Exceptionex)
{
ex.printStackTrace();
}
}
}这便完成了Java挪用.netDLL的办法!
据说很厉害,甚至可以把C#也干掉^_^,不过也很复杂,本来C++已经够复杂的。有人甚至还提出把这个东东引进标准,我觉得基本上不可能的。
作者: 愤怒的大鸟    时间: 2015-1-24 12:39
碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。
作者: 小魔女    时间: 2015-2-1 12:09
主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和VisualBASIC类似,可以像SSI(ServerSideInclude)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。
作者: 老尸    时间: 2015-2-7 05:13
在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。
作者: 第二个灵魂    时间: 2015-2-20 15:03
我的意思是.net好用,从功能上来说比JAVA强还是很明显的。
作者: 因胸联盟    时间: 2015-3-6 18:35
我觉得什么语言,精通就好,你要做的就是比其他80%的人都厉害,你就能得到只有20%的人才能得到的高薪。
作者: 蒙在股里    时间: 2015-3-13 05:25
但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。
作者: 不帅    时间: 2015-3-20 14:06
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2