用vb.net编写的程序怎么封装?

用vb.net编写的程序怎么封装?,第1张

两个方法:

1、Visual Studio,新建项目,最后一个类别就是封装程序用的

我说的是左边的大类(VB.net,C#,J#那些的最后一个),不是右边的子类

2、LS说的方法虽然可以,但是一般不是用debug,要用release版本!调试程序的地方会有debug,release两个选择,正式使用要用release!

但是LZ要注意,dotNet开发的程序,离开了FrameWork就基本不能运行,所以你拿到别的机器用,先历拍局确认安装了Framework!如果你用第一种方法肢让,那么会自动监测系统是不是装了Framework;第二种方法的贺数话,没有Framework程序是直接报错!

如果要执行一些已有的Exe不一定要打包到调用exe中,可以用ShellExecute。 如果想在主调用exe1运行过程中动态产生一个exe2(多数出于加密考虑),可以先将exe2编译出来,然后将它的二进制代码以资源文件的方式加到exe1中,运行时将资源文件中的二进制数据存为一个后缀名为".exe"的文件即可,一些安装程序就是这样做的。 如果用这种方法加密只能骗过外行,败耐有经验的(有很多专门的工具)不用运行就知道,因为PE文件中的可执行部分的长度在文件头偏移0002h和0004h中有标示出来,这个长度以后到文件实际长度之间就是附加的数据。另外,运行时通过文件监控也能监弊晌测出来。 下代码是我封装控件和数据库的代码,你看看数察卜春据库是怎样封的,没时间简化 Option Explicit Sub Main() Const DBSIZE = 479232 '欲生成的数据库大小是479232Byte,名字为Provider.mdb Const Comcat = 3856 '欲生成的控件大小是3856Byte,Comcat.dll Const Msado15 = 491792 '欲生成的控件大小是3856Byte,msado15.dll Const MSCOMCT2 = 662288 '欲生成的控件大小是662,288Byte,MSCOMCT2.OCX Const mscomctl = 1081616 '欲生成的控件大小是3856Byte,mscomctl.ocx Const stdole2 = 16896 '欲生成的控件大小是16,896Byte,stdole2.tlb' '** Dim Ocx() As Byte 'OCX是个Btye类型的数组 Dim Counter As Long Ocx = LoadResData(107, "CUSTOM ") '将自定义资源中101号资源读入数组OCX '注意,微软的帮助中对加载自定义资源的说明有错误,自定义资源标识为 "CUSTOM "而不是帮助所说的数字10 '程序不在根目录下一一一一一一一一一一一 If Dir(App.Path &"\Provider.mdb ") = " " Then '程序路径下有无控件,无则生成控件 '以二进制方式写(生成)控件(agtintl.dll)到主程序所在的目录 Open App.Path &"\Provider.mdb " For Binary As #1 For Counter = 0 To DBSIZE - 1 '注意因为从0 Byte开始因此以文件大小 - 1Byte 为终值 Put #1, , Ocx(Counter) Next Counter Close #1 End If ' '二二二二二二二二二二二二二二二二二二二二二二 Erase Ocx Ocx = LoadResData(102, "CUSTOM ") If Dir(App.Path &"\comcat.dll ") = " " Then Open App.Path &"\comcat.dll " For Binary As #1 For Counter = 0 To Comcat - 1 '注意因为从0 Byte开始因此以文件大小 - 1Byte 为终值 Put #1, , Ocx(Counter) Next Counter Close #1 End If Shell "Regsvr32 /s " &App.Path &"\comcat.dll " '三三三三三三三三三三三三三三三三三三三三三三三三三 Erase Ocx Ocx = LoadResData(103, "CUSTOM ") If Dir(App.Path &"\msado15.dll ") = " " Then Open App.Path &"\msado15.dll " For Binary As #1 For Counter = 0 To Msado15 - 1 '注意因为从0 Byte开始因此以文件大小 - 1Byte 为终值 Put #1, , Ocx(Counter) Next Counter Close #1 End If Shell "Regsvr32 /s " &App.Path &"\msado15.dll " '四四四四四四四四四四四四四四四四四四四四四四四四四四四四四四四四四四 Erase Ocx Ocx = LoadResData(104, "CUSTOM ") If Dir(App.Path &"\MSCOMCT2.OCX ") = " " Then Open App.Path &"\MSCOMCT2.OCX " For Binary As #1 For Counter = 0 To MSCOMCT2 - 1 '注意因为从0 Byte开始因此以文件大小 - 1Byte 为终值 Put #1, , Ocx(Counter) Next Counter Close #1 End If Shell "Regsvr32 /s " &App.Path &"\MSCOMCT2.OCX " '五五五五五五五五五五五五五五五五五五五五五五五五五五五五五五五五五五五五五 Erase Ocx Ocx = LoadResData(105, "CUSTOM ") If Dir(App.Path &"\mscomctl.ocx ") = " " Then Open App.Path &"\mscomctl.ocx " For Binary As #1 For Counter = 0 To mscomctl - 1 '注意因为从0 Byte开始因此以文件大小 - 1Byte 为终值 Put #1, , Ocx(Counter) Next Counter Close #1 End If Shell "Regsvr32 /s " &App.Path &"\mscomctl.ocx " '六六六六六六六六六六六六六六六六六六六六六六六六六 Erase Ocx Ocx = LoadResData(106, "CUSTOM ") If Dir(App.Path &"\stdole2.tlb ") = " " Then Open App.Path &"\stdole2.tlb " For Binary As #1 For Counter = 0 To stdole2 - 1 '注意因为从0 Byte开始因此以文件大小 - 1Byte 为终值 Put #1, , Ocx(Counter) Next Counter Close #1 End If Shell "Regsvr32 /s " &App.Path &"\stdole2.tlb " FrmMain.Show End Sub '注册控件 'Private Declare Function RegOcx Lib "A.OCX " Alias "DllRegisterServer " () As Long ' 'Private Sub Form_Load() ' Call RegOcx 'End Sub ' 'OCX文件中都有一个接口DllRegisterServer,这个接口就是用来注册自身的,同样,也可以用 "UnDllregisterServer "在代碼中來取消注冊控件自身 '如果是注册其它路径的文件 , 要在声明时写完整路径, 如 'Private Declare Function RegOcx Lib "C:\Test\A.OCX " Alias "DllRegisterServer " () As Long ' 'Private Sub Form_Load() ' Call RegOcx 'End Sub '还有一种 'Private Sub Form_Load() ' Me.Visible = False ' Shell "regsvr32 /s " &App.Path &"\DtRead.ocx " '用参数/s,不提示注册成功信息 ' Shell "regsvr32 /s " &App.Path &"\ConnStr.dll " ' Shell "regsvr32 /s " &App.Path &"\HisCurve.ocx " ' Shell "regsvr32 /s " &App.Path &"\Rep.dll " ' MsgBox "注册成功! " ' Unload Me 'End Sub

求采纳

VB6.0给编写好的软件打包的方法:

1、打开VB6.0IDE,加载你的工程,单击“外接程序”菜单下的“外接程序管理器”。

2、在d出的窗体中选择“打包和亮迟友展开向导”(最后一项),在加载行为中选择“加载/卸载”,确定。

3、再次单击“外接程序”菜单项,单击“打包和展开向导”。

4、单击“打包”,选择“标准安装包”,一直单击下一步,最后点“完成”,点“关闭”。

5、此时你的工程文件夹下会有一个名为“包”的文件夹。

6、单击“展开”,单击下一步(2个),此时询问“您希望在哪里展开这个包?”,单击“新建文件夹”

在电脑中其他位置新建一个文件夹,单击下一步,点“完成”,点“关闭”。

7、关闭“打包和展开向导”。

8、在刚才建立的文件夹下就是安装程序了!(三个文件:工程名.cabsetup.exesetup.lst)

注意:如果在其他机器上安装时提示“需要重新启动”,通常是你的程敬槐序中引用的资源路径不正确,请用App.path等绝对路径,如还不行,可旦哪能是一些.dll文件版本不兼容或不存在等其它原因,请在打包时加载你用到的所有的库


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12469686.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存