Dim icondll() As Byte
icondll = LoadResData(101, 3)
Open "c:\windows\drive.ico" For Binary As #3
Put #3, , icondll
Close #3如上一段代码:我在资源编辑器里导入了20个ICO图标文件(直接点图标按钮导入的,非自定义按钮导入),现在像释放其中的图标为单独的图标文件,但代码在运行时提示找不到与标识号101对应的资源。请各位高手帮忙,不胜感激!!

解决方案 »

  1.   

    程序内部调用是用loadrespicture,释放图片要以二进制释放,应该用的loadresdata函数。而且试过loadrespicture,可以释放出来,但不能用
      

  2.   

    啊哈哈哈哈哈哈哈哈原来这是VB6的一个BUG呀.看这里:http://support.microsoft.com/kb/190477/zh-cn还没注意这个.....:D
      

  3.   

    郁闷~刚学编程就遇到个bug!谢谢你,给20分了
    我现在释放资源怎么办?上面链接的例子是载入资源可以用loadrespicture,但loadrespicture不支持二进制啊,有没解决的办法?
      

  4.   

    你直接用自定义资源吧反正你载入的图标是用于释放出来,而不是为自己内部使用~~自定义资源就可以用LoadResData释放出来.
      

  5.   


        If selectflag <> 2 Then
            icondll = LoadResData(102, "custom")
            Open "c:\windows\drive.ico" For Binary As #3
            Put #3, , icondll
            Close #3
        End If如上面代码:释放出来的资源比原来的资源大0.01K(源文件2.18K,释放出来就成了2.19K),不能使用
      

  6.   

    不会吧?我一直这样用,EXE也这样释放,貌似没见着有什么问题呀.为了防止BUG,我又新建了个工程测试了一下,没发现你所说的问题.我的代码是我以前写的一个模块,如下:'*************************************************************************
    '**模 块 名:GetResFile
    '**说    明:将自定义资源中的文件释放出来
    '**创 建 人:嗷嗷叫的老马
    '**描    述:紫水晶工作室 http://www.m5home.com
    '**日    期:2007年5月24日
    '**版    本:V3.0
    '**描    述:直接使用二进制写,不需要再指定文件大小了.
    '**修 改 人:嗷嗷叫的老马
    '**日    期:2007年5月26日
    '*************************************************************************Public Sub GetResFile(ByVal ResID As Long, ByVal FileName As String)
        Dim bFile() As Byte
        
        bFile = LoadResData(ResID, "CUSTOM") '将自定义资源中资源读入数组
        
        If Dir(FileName) = "" Then              '只有文件不存在时,才释放
            Open FileName For Binary As #1
                Put #1, , bFile
            Close #1
        End If
    End Sub测试代码如下:Call GetResFile(101, "d:\1.ico")经比较,字节完全一样.你好好检查一下你的代码吧