VB.Net中实现VB6中的App.hInstance

本文介绍如何在 VB.NET 中实现类似 VB6 的 App.hInstance 功能。通过使用 System.Runtime.InteropServices 命名空间及反射 API,可以获取当前程序集的模块实例,并进一步调用 Marshal.GetHINSTANCE 方法来获取模块句柄。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 VB.Net中实现VB6中的App.hInstance  
by sandy_zc_1 (把n久前自己发在FM吧中的东西转到自己的blog上,汗)

-----------当时的原文↓↓-----------------------------------------------------------------------------------------------------------



VB.Net中实现VB6中的App.hInstance

查了半天,终于找到了一个可用的方法,.Net真是麻烦啊。


Imports System.Runtime.InteropServices

然后定义
Dim hInstance as IntPtr

再定义
Dim mdl() As System.Reflection.Module = System.Reflection.Assembly.GetExecutingAssembly.GetModules

最后
hInstance=Marshal.GetHINSTANCE(mdl(0))

如果要传API的话,还得把IntPtr转Int32
Dim hInstance32 as Int32 =hIsntance.ToInt32

这段时间搞.Net,感触真多啊,感觉M$为了做跨平台,把.Net搞的太脱离Win32了,结果现在跨平台没有进展多少,Win32编程倒是麻烦了不少。不爽啊。  

---------------当时的原文↑↑------------------------------------------------------------------------------------------------------

现在.Net用得多了,回头来看还是感到比较汗。发现当时对Win32编程的理解也还不够,现在看来.Net有些很麻烦的地方其实还是有道理的。

其实抛开M$那一套,.Net还是不错的。

   

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值