永不言弃 QQ105670118 Email:chzjxgd@21cn.com
[原创]实现用 VB.Net/(C#)开发 K/3 BOS 插件的真正可行方法
------------(网上流传的 C Sharp 写插件实是不可行的)
金蝶 K3 BOS 的插件官方是用 VB6 编写的,如果
能用.Net 下的语言工具开发 BOS 插件是一件很愉快的事情,其中缘由不言而喻,而本文
则是个人首创,实现在了用 VB.NET 或 C# C++.Net 来开发 BOS 的插件(DLL),如果哪
位还有比这方法更早的请联系作者,修改首创的宣称
在此先讲几个概念性的问题:
1、 Net 类组件与 COM 组件:VB6 开发的 ActiveX.dll 可以用 regsvr32.exe 注册,它是适合 COM 规范的东
西,.NET 开发的类后缀也是 dll,可是它们俩不是相同的东西,.NET(VB、C#)开发的 DLL 是跑
在.netCLR 上的中间二进制字节码以及其他一些有自描述功能的元数据组成的 ,它不符合 COM+规
范,金蝶 K/3 及 BOS 都是用 VB6 开发而来的,EAS 那就另当别论了,所以 BOS 插件说白了也是
VB6 调用符合 COM 规范的 DLL,它的原理就是在原程序里(宿主)先导入放在 BOS 插件上的 dll 然
后直接 Byref 调用 Public Sub Show(Byval XXX as Object) 来把需要编程的对象传递过来,所以
我们要 VB6 能调用.Net 的 dll,那怎么办呢?Visual Studio 提供了一个命令行工具,里面有一个叫
regasm.exe 的工具帮我们实现这个互通 命令有点汇编的那个 masm!
2、 .NET 中的强名 strong name 说白了就是为了保护你的组件不被破坏,.Net 开发的 dll 想给
像 com 那样被调用那就必须加个强名(数字签名)
’-----------------------------------------------------------------------------------------------------------------------------------------
-
废话少说,照着我详细的步骤来依葫芦画瓢吧
1,打开 VS 创建一个类 看图 1.1
图 1.1
说明:注意图上的红线方框,类、类名、所使用的.Net Frame 版本为 3.5 2.0 的也可以,此
测试语言我选 VB,当然 C#也可以,本人是 basic 的忠实者!
金蝶 K3 经验 3 号分群 38119522
评论30