怎样把程序中用到的如图片文字音乐等资源文件打包成dat文件
以避免用户直接接触到这些文件
并能让程序也能正常调用

解决方案 »

  1.   

    做成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)。   
     
      

  2.   

    使用资源文件,先编译成res文件,然后改扩展名为dat即可,程序中可以使用LoadResData,LoadResPicture,LoadResString之类调用
    如果还是担心,可以用二进制形式打开res文件,修改某个字符,然后使用的时候改回来即可
      

  3.   

    dll也不保密 !
    既然你在工程中能调用,那别人也能调用。
    那位有更好的方法。???
    谢谢。