怎样把程序用到的资源打包成dat文件并让程序正常调用 怎样把程序中用到的如图片文字音乐等资源文件打包成dat文件以避免用户直接接触到这些文件并能让程序也能正常调用 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 做成DLL文件也行啊! 下面是整个操作过程。1、 新建一个ActiveX DLL工程,工程名为:prjPictureRes2、 依次打开:外接程序->外接程序管理器->VB6.0资源编辑器,双击,确定。此时,在工具栏上出现一个资源管理器的按钮。3、 点击“VB资源编辑器”按钮,出现如下的资源编辑器窗口。 图14、 按图1所示,添加四个图标和一个位图,点击“保存”,将生成一个扩展名为.res的资源文件,我们将该文件命名为Myres.res。同时,工程资源管理器会出现一个“相关文档”的节点,如图2:图25、 在类模块class1中,我们写如下代码将相应的资源导出。Public Function LoadRes(resID As Integer, ImgType As Integer) As IPictureDisp Set LoadRes = LoadResPicture(resID, ImgType)End Function其中:参数resID为资源号,ImgType为图片类型(位图、图标或光标),这两个参数传入LoadResPicture()函数,下面,对LoadResPicture()简单讲解。语法: LoadResPicture(index as integer, format as integer) as IpictureDisp参数: index: 必需的。一个整数或字符串,它用来指定资源文件中数据的标识符 (ID) 。ID标识符为 1 的资源保留给应用程序的图标。 Format: 必需的。一个数值或常数,如下列“设置值”中所描述的,指定返回数据的格式: 常数 值 描述 VbResBitmap 0 位图资源 vbResIcon 1 图标资源 vbResCursor 2 光标资源6、 编译成prjPictureRes.dll文件。至此,ActiveX DLL文件已经完成。7、 接下来做一个测试工程,新建一个EXE工程,在窗体上放一个工具栏,用来显示.DLL文件中的图标;一个ImageList控件;一个图像控件(Image),用来显示.dll文件中的位图。界面如图3。 图38、 将刚才完成的prjPictureRes.dll组件通过“工程->引用”的方法加入到工程中。9、 在窗体的Load事件中写如下代码:Private Sub Form_Load() Dim objRes As prjPictureRes.Class1 Set objRes = New prjPictureRes.Class1 Dim aImage As ListImage '设置图标的高度和宽度 ImageList1.ImageHeight = 24 ImageList1.ImageWidth = 24 '往图像列表控件中添加图标(101、102、103、104为资源编号,下同) Set aImage = ImageList1.ListImages.Add(, , objRes.LoadRes(101, vbResIcon)) Set aImage = ImageList1.ListImages.Add(, , objRes.LoadRes(102, vbResIcon)) Set aImage = ImageList1.ListImages.Add(, , objRes.LoadRes(103, vbResIcon)) Set aImage = ImageList1.ListImages.Add(, , objRes.LoadRes(104, vbResIcon)) '与工具栏关联 Set Toolbar1.ImageList = ImageList1 '添加工具栏按并设置图标 Dim aButton As Button Set aButton = Toolbar1.Buttons.Add(, , "新建", , 1) aButton.ToolTipText = "新建" Set aButton = Toolbar1.Buttons.Add(, , "打开", , 2) aButton.ToolTipText = "打开" Set aButton = Toolbar1.Buttons.Add(, , "", tbrSeparator) Set aButton = Toolbar1.Buttons.Add(, , "保存", , 3) aButton.ToolTipText = "保存" Set aButton = Toolbar1.Buttons.Add(, , "另存为", , 4) aButton.ToolTipText = "另存为..." '设置工具栏其他属性 Toolbar1.Style = tbrFlat '以Flat形式显示 '设置Image1控件属性 Image1.Stretch = True '图片自适应 '将位图资源加载到Image1控件中(105为资源编号) Set Image1.Picture = objRes.LoadRes(105, vbResBitmap) '释放资源 Set aImage = Nothing Set aButton = Nothing Set objRes = NothingEnd Sub 至此,大功告成,一起来欣赏一下我们的最终作品(图4)。 使用资源文件,先编译成res文件,然后改扩展名为dat即可,程序中可以使用LoadResData,LoadResPicture,LoadResString之类调用如果还是担心,可以用二进制形式打开res文件,修改某个字符,然后使用的时候改回来即可 dll也不保密 !既然你在工程中能调用,那别人也能调用。那位有更好的方法。???谢谢。 关于VBS的书 VB中如何使得窗体透明而控件不透明呢? 数组搬移处理 出错!!整个崩溃 奇怪的问题:FileSystemObject删除一个打开的目录时而会报错? 怎么让datagrid直接等于记录集呀? 为什么我的程序退出会这样? [讨论]Access数据库变成MS SQL数据库,代码要改变什么? 关于表更新 为什么打包后的.exe程序卸载不了呢??? ado+access,返回状态? 怎样实现VB样式的MDI窗体? 我的机子出了问题---->急!!!在线等!!都进来!!!!
下面是整个操作过程。1、 新建一个ActiveX DLL工程,工程名为:prjPictureRes2、 依次打开:外接程序->外接程序管理器->VB6.0资源编辑器,双击,确定。此时,在工具栏上出现一个资源管理器的按钮。3、 点击“VB资源编辑器”按钮,出现如下的资源编辑器窗口。 图14、 按图1所示,添加四个图标和一个位图,点击“保存”,将生成一个扩展名为.res的资源文件,我们将该文件命名为Myres.res。同时,工程资源管理器会出现一个“相关文档”的节点,如图2:图25、 在类模块class1中,我们写如下代码将相应的资源导出。Public Function LoadRes(resID As Integer, ImgType As Integer) As IPictureDisp Set LoadRes = LoadResPicture(resID, ImgType)End Function其中:参数resID为资源号,ImgType为图片类型(位图、图标或光标),这两个参数传入LoadResPicture()函数,下面,对LoadResPicture()简单讲解。语法: LoadResPicture(index as integer, format as integer) as IpictureDisp参数: index: 必需的。一个整数或字符串,它用来指定资源文件中数据的标识符 (ID) 。ID标识符为 1 的资源保留给应用程序的图标。 Format: 必需的。一个数值或常数,如下列“设置值”中所描述的,指定返回数据的格式: 常数 值 描述 VbResBitmap 0 位图资源 vbResIcon 1 图标资源 vbResCursor 2 光标资源6、 编译成prjPictureRes.dll文件。至此,ActiveX DLL文件已经完成。7、 接下来做一个测试工程,新建一个EXE工程,在窗体上放一个工具栏,用来显示.DLL文件中的图标;一个ImageList控件;一个图像控件(Image),用来显示.dll文件中的位图。界面如图3。 图38、 将刚才完成的prjPictureRes.dll组件通过“工程->引用”的方法加入到工程中。9、 在窗体的Load事件中写如下代码:Private Sub Form_Load() Dim objRes As prjPictureRes.Class1 Set objRes = New prjPictureRes.Class1 Dim aImage As ListImage '设置图标的高度和宽度 ImageList1.ImageHeight = 24 ImageList1.ImageWidth = 24 '往图像列表控件中添加图标(101、102、103、104为资源编号,下同) Set aImage = ImageList1.ListImages.Add(, , objRes.LoadRes(101, vbResIcon)) Set aImage = ImageList1.ListImages.Add(, , objRes.LoadRes(102, vbResIcon)) Set aImage = ImageList1.ListImages.Add(, , objRes.LoadRes(103, vbResIcon)) Set aImage = ImageList1.ListImages.Add(, , objRes.LoadRes(104, vbResIcon)) '与工具栏关联 Set Toolbar1.ImageList = ImageList1 '添加工具栏按并设置图标 Dim aButton As Button Set aButton = Toolbar1.Buttons.Add(, , "新建", , 1) aButton.ToolTipText = "新建" Set aButton = Toolbar1.Buttons.Add(, , "打开", , 2) aButton.ToolTipText = "打开" Set aButton = Toolbar1.Buttons.Add(, , "", tbrSeparator) Set aButton = Toolbar1.Buttons.Add(, , "保存", , 3) aButton.ToolTipText = "保存" Set aButton = Toolbar1.Buttons.Add(, , "另存为", , 4) aButton.ToolTipText = "另存为..." '设置工具栏其他属性 Toolbar1.Style = tbrFlat '以Flat形式显示 '设置Image1控件属性 Image1.Stretch = True '图片自适应 '将位图资源加载到Image1控件中(105为资源编号) Set Image1.Picture = objRes.LoadRes(105, vbResBitmap) '释放资源 Set aImage = Nothing Set aButton = Nothing Set objRes = NothingEnd Sub 至此,大功告成,一起来欣赏一下我们的最终作品(图4)。
如果还是担心,可以用二进制形式打开res文件,修改某个字符,然后使用的时候改回来即可
既然你在工程中能调用,那别人也能调用。
那位有更好的方法。???
谢谢。