|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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一样。有的还是一种思想(就是做软件的思想)(好像很深奥,其实我也不懂^_^) |
|