Vb.net Dll封装的类,在其他程序调用该类的时候有没有办法得到当前的窗体?你这个需求很奇怪,也不好实现
那你这个CloseForm在哪里调用?
ColseForm(Form Me){
Me.Close();
}
其它地方的窗体调用这个方法就直接用:CloseForm(this);
VB.NET调用VB6 封装的DLL(包含FORM),提示无法引用我做过,但是具体忘记vb.net_封装dll了 。不过给vb.net_封装dll你个提示:VB6生成vb.net_封装dll的是COM组件,不是提供输出函数过程vb.net_封装dll的DLL无法通过普通的DLL声明--调用函数 。可以参考VB6中调用VB6的DLL(设:1.DLLclass类名为:classtest 过程/函数名为:MTEST)调用
dim objecttest as objectset object=createobject("1.classtest ")objtest.Mtest
手头没有VB6 NET工具 没办法,只能到这了,希望对vb.net_封装dll你有帮助
vb中如何将类模块封装成dll文件?将写好的类模块里面的内容全部copy下来vb.net_封装dll,新建一个activeX
Dll工程,粘贴到class里面去 , 文件-〉生成dll就可以vb.net_封装dll了 。
提醒vb.net_封装dll:vb创建的是activeX
Dll , 要用createobject方法调用!
VB.NET中的模块 在C#中有 静态类 的概念 自然里边全部的方法都是静态的 这意味着你可以直接通过 类名 方法名 去调用(例如System的Math类就是典型) 在VB NET中 没有 静态类 的概念(当然你可以用 单例模式 把构造函数弄成Private的方式 其它方法都是静态的)如果某些方法需要被其它地方频繁使用 可以创建 模块 在VB NET中一旦创建了模块 其中任何方法 属性或者变量都可以被其它地方引用 因此适合全局情况下频繁交互的情况(比如初始化加载的参数 可能后续程序要使用)等
现在问题在于 如果你把一个类似以下的模块代码封装成DLL类库 无论在C#或者是VB NET中都无法引用到其方法
Module A
Public Sub Test()
End Sub
End Module
或许你感到很奇怪——不是在VB NET中这样定义一个Module就直接可以使用其内部方法了么?为什么封装成类库就不可以了呢?上网问了一些人 众说纷纭 后来我在他人协助下终于成功解决了这个问题——解决方法很简单——只要在Module前加Public
理由是 为了兼容C# VB NET由Module封装成类库中这个模块不再是 模块 而是一个标准的类了 如果这样写 那么在 NET中被理解成(C#)
internal A
{
public void Test()
{
}
}
整个模块变成Internal的了!当然你到其它程序集中去引用就引用不到!而把类库中的Module的修饰符改为Public就可以了 这就是MSDN那位友人给我最好的提示
虽然这个提示不是令我太满意(因为要知道VB NET中可以直接不通过 类名 方式直接使用方法名) 但是这给了我很大的暗示 得出重要的结论
)VB NET中Module在制作成类库时候等同于VB NET中的类的规则(里边的方法都是静态的) 默认情况下是Friend(C#是internal)
)根据结论 那么我们知道引用该DLL类库的方法一定是 i)引用命名空间ii)C#中直接 类名 方法名 对于VB NET 直接可以引用到方法名
lishixinzhi/Article/program/net/201311/12502
.net 代码如何封装成dll建立个类库项目,但是.net的类库项目生成的dll只能给.net自己使用 , 所有要写成.NET的COM组件才能给如VB6程序使用 。
如下就是.net COM组件格式了 。但是给别人用也要装.net framwork
[Guid 为工具里创建,你还要用签名一个.snk文件,然后把这个类库项目属性里加上这个签名
签名文件产生你可以到.net SDK运行命令 sn -k name.snk产生签名文件,然后再项目里加上签名文件 。
namespace Test
{
[Guid("A7EB3BC2-FFB9-471b-BE23-8AAA365946F5")]
public class testclass
{
public testclass()
{
}
//一定要这个这是标明COM组件的入口地址,每个给外面接口的都要写这个如[DispId(2]中间数字不能重复
[DispId(1)]
public string hello(string whatyouwantoencrypt)
{
return "hello!,you want to crypt:"whatyouwantoencrypt;
}
然后再VB脚本里可以这样调用
dim SppClient
Set SppClient= CreateObject("Test.testclass")
记的一定要[Guid("A7EB3BC2-FFB9-471b-BE23-8AAA365946F5")]
[DispId(1)]
【vb.net_封装dll excelvba封装dll】和签名,否则不能生成有用的COM组件 。
VB.NET如何调用封装好的dll类中的方法?比如有一个类是You.dll,里面有一个封装好的方法是YouSub(byval a as system.array)
在工程里面,你在引用中,添加引用,选择You.dll的路径所在 , 添加引用;
添加引用后,要定义一个类,并实例化他
dim you as You=new You()
you.YouSub("参数")
vb.net_封装dll的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于excelvba封装dll、vb.net_封装dll的信息别忘了在本站进行查找喔 。
推荐阅读
- 苹果手机外接安卓u盘,苹果u盘和安卓u盘区别
- 去狐臭喷雾线下如何推广,去狐臭喷雾哪个牌子好百度知道
- u盘文件怎么加密文件,u盘文件怎么加密文件在手机上
- ios双重认证手机号,ios双重认证手机号错误
- vb.net文件列表 vbnet listview基本操作
- 台式电脑怎么装硬盘,固态硬盘为什么不建议分区
- qn是什么CPU,qn是什么版本苹果
- 世界上最早路由器叫什么,世界上第一台路由器诞生于哪一年?
- linux命令找文件的包 linux命令行找文件