仓酷云

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

[学习教程] ASP.NET网站制作之在C#中静态挪用native dll的导出函数

[复制链接]
分手快乐 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:42:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
J2EE比较成熟一点,一些比较出名的企业应用软件都是基于J2EE的。以后的发展就不好说了。不过java比较烦,学.net的话,微软把很多工具都封装好了,学起来可能容易一点。静态|函数在C++中我们可以经由过程LoadLibrary,GetProcAddress来静态挪用dll的导出函数.
在C#中也可以用如许的体例吗?
在DotNet2.0内里如许是能够的,这完整得益于2.0新增的一个函数
Marshal.GetDelegateForFunctionPointer办法
此办法在.NETFramework2.0版中是新增的。
将非托管函数指针转换为托付。
实例代码以下:

publicdelegateintMsgBox(inthwnd,stringmsg,stringcpp,intok);
[DllImport("Kernel32")]
publicstaticexternintGetProcAddress(inthandle,Stringfuncname);
[DllImport("Kernel32")]
publicstaticexternintLoadLibrary(Stringfuncname);
[DllImport("Kernel32")]
publicstaticexternintFreeLibrary(inthandle);
privatestaticDelegateGetAddress(intdllModule,stringfunctionname,Typet)
{
intaddr=GetProcAddress(dllModule,functionname);
if(addr==0)
returnnull;
else
returnMarshal.GetDelegateForFunctionPointer(newIntPtr(addr),t);
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
inthuser32=0;
huser32=LoadLibrary("user32.dll");
MsgBoxmymsg=(MsgBox)GetAddress(huser32,"MessageBoxA",typeof(MsgBox));
mymsg(this.Handle.ToInt32(),txtmsg.Text,txttitle.Text,64);
FreeLibrary(huser32);
}
是不是实质都是API?有的好像不只是API那么简单的,有的也是一种框架就像MFC一样。有的还是一种思想(就是做软件的思想)(好像很深奥,其实我也不懂^_^)
老尸 该用户已被删除
沙发
发表于 2015-1-19 21:36:07 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
因胸联盟 该用户已被删除
板凳
发表于 2015-1-25 11:50:24 | 只看该作者
可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。
飘灵儿 该用户已被删除
地板
发表于 2015-2-8 08:18:24 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
admin 该用户已被删除
5#
发表于 2015-2-25 02:32:27 | 只看该作者
主流网站开发语言之JSP:JSP和Servlet要放在一起讲,是因为它们都是Sun公司的J2EE(Java2platformEnterpriseEdition)应用体系中的一部分。
不帅 该用户已被删除
6#
发表于 2015-3-7 15:58:58 | 只看该作者
HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了.
愤怒的大鸟 该用户已被删除
7#
发表于 2015-3-15 09:21:44 | 只看该作者
网页从开始简单的hmtl到复杂的服务语言,走过了10多个年头,各种技术层出不穷,单个的主流技术也在不断翻新的版本,现在分析下各种语言的区别、优势、劣势、开发注意事项!
爱飞 该用户已被删除
8#
发表于 2015-3-21 23:22:29 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 05:21

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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