- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《[原创]实现用VB.Net(C#)开发K3 BOS 插件的真正可行方法》.doc
[原创]实现用VB.Net/(C#)开发K/3 BOS 插件的真正可行方法
------------(网上流传的C Sharp写插件实是不可行的)
金蝶K3 BOS的插件官方是用VB6编写的,如果
能用.Net下的语言工具开发BOS插件是一件很愉快的事情,其中缘由不言而喻,而本文则是个人首创,实现在了用VB.NET 或C# C++.Net来开发BOS的插件(DLL),如果哪位还有比这方法更早的请联系作者,修改首创的宣称
在此先讲几个概念性的问题:
Net类组件与COM组件:VB6开发的ActiveX.dll 可以用regsvr32.exe 注册,它是适合COM规范的东西,.NET开发的类后缀也是dll,可是它们俩不是相同的东西,.NET(VB、C#)开发的DLL是跑在.net?CLR上的中间二进制字节码以及其他一些有自描述功能的元数据组成的.NET中的强名strong name 说白了就是为了保护你的组件不被破坏,.Net开发的dll想给像com那样被调用那就必须加个强名(数字签名)
’------------------------------------------------------------------------------------------------------------------------------------------
废话少说,照着我详细的步骤来依葫芦画瓢吧
1,打开VS创建一个类 看图1.1
图1.1
说明:注意图上的红线方框,类、类名、所使用的.Net Frame版本为3.5 2.0的也可以,此测试语言我选VB,当然C#也可以,本人是basic的忠实者!
2,进去后在菜单 [项目][添加引用] 处添加 K3ClassEvents.dll 组件(和VB6一样要添加它)如:图2.1
图 2.1
3,以net的方式和规范编写代码,具体可参考BOS资料和VB6的工具栏插件生成的代码稍作修改作为骨架码
图 3.1
详细代码贴出 附件也带原测试工程文件,不包括实际应用功能只作示例
Imports K3ClassEvents
Public Class MenuBar
定义 ListEvents 接口. 必须具有的声明, 以此来获得事件
Private WithEvents m_ListInterface As ListEvents
Public Sub Show(ByVal oListInterface As Object)
ListEvents 接口实现
注意: 此方法必须存在, 请勿修改
m_ListInterface = oListInterface
End Sub
Private Sub Class_Terminate()
释放接口对象
注意: 此方法必须存在, 请勿修改
m_ListInterface = Nothing
End Sub
Private Sub m_ListInterface_MenuBarClick(ByVal BOSTool As K3ClassEvents.BOSTool, ByRef Cancel As Boolean) Handles m_ListInterface.MenuBarClick
TODO: 请在此处添加代码响应事件
On Error Resume Next
Select Case BOSTool.ToolName
Case shangla
此处添加处理shangla 菜单对象的 Click 事件
Dim form As New Form
form.Show()
Case dizhu
此处添加处理dizhu 菜单对象的 Click 事件
Case config
MsgBox(此处添加处理config 菜单对象的 Click 事件 config)
Case Info
此处添加处理Info 菜单对象的 Click 事件
Dim strID As String
strID = m_ListInterface.DataSrv.ClassT
文档评论(0)