如何把VB程序中需要的控件合并到程序中

来源:百度知道 编辑:UC知道 时间:2024/05/23 22:58:35
就是比如我加载一个winsock控件到一个VB的程序中,但是生成的程序在没装VB的电脑上无法使用(缺少winsock控件的DLL),要如何解决?(不要只是简单的复制所需的DLL和生成的程序一起,我就是想把控件合并到EXE文件中,这样就只要一个生成的EXE文件就行了),谢谢大家!

有办法:

把文件放到资源文件里,然后,在程序启动时,从资源文件里提取文件,把文件放到system32里,或放到与程序同一文件夹内,这样的话,winsock不用注册也能用,如果系统已经存在,只是用已经存在的文件,而不影响使用.
但是要求,你只能在程序启动并完成上述操作之后方可使用winsock,
比如下例操作会出错:你的启动窗体为frmload,但frmload有winsock控件.

从资源文件里提取文件的方法如下:这是我写的代码,用法应该一看就知道
Public Function SaveFileFromResource(vntResourceID As Variant, sType As String, sFileName As String) As Boolean

Dim bytImage() As Byte
Dim iFileNum As Integer
On Error GoTo SaveFileFromRes_Err
SaveFileFromResource = True

bytImage = LoadResData(vntResourceID, sType)

iFileNum = FreeFile

Open sFileName For Binary As iFileNum
Put #iFileNum, , bytImage
Close iFileNum
Exit Function
SaveFileFromRes_Err:
'SaveFileFromResource = False: Err.Clear
End Function