仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 670|回复: 7
打印 上一主题 下一主题

[学习教程] ASP.NET网页编程之C# 制造Com组件:java挪用.net DLL的办法...

[复制链接]
冷月葬花魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:21:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
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:10 | 只看该作者
碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。
小魔女 该用户已被删除
板凳
发表于 2015-2-1 12:09:33 | 只看该作者
主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和VisualBASIC类似,可以像SSI(ServerSideInclude)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。
老尸 该用户已被删除
地板
发表于 2015-2-7 05:13:47 | 只看该作者
在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。
第二个灵魂 该用户已被删除
5#
发表于 2015-2-20 15:03:46 | 只看该作者
我的意思是.net好用,从功能上来说比JAVA强还是很明显的。
因胸联盟 该用户已被删除
6#
发表于 2015-3-6 18:35:45 | 只看该作者
我觉得什么语言,精通就好,你要做的就是比其他80%的人都厉害,你就能得到只有20%的人才能得到的高薪。
蒙在股里 该用户已被删除
7#
发表于 2015-3-13 05:25:23 | 只看该作者
但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。
不帅 该用户已被删除
8#
发表于 2015-3-20 14:06:14 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 22:38

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表