各位,这里有三个资源读取函数:
Private Declare Function LoadString Lib "user32" Alias "LoadStringA" (ByVal hInstance As Long, ByVal wID As Long, ByVal lpBuffer As String, ByVal nBufferMax As Long) As Long
Private Declare Function LoadBitmap Lib "user32" Alias "LoadBitmapA" (ByVal hInstance As Long, ByVal lpBitmapName As Long) As Long
Private Declare Function LoadIcon Lib "user32" Alias "LoadIconA" (ByVal hInstance As Long, ByVal lpIconName As Long) As Long一、感觉:
1,似乎 LoadString 函数似乎要好用一点,LoadBitmap 和 LoadIcon 二个函数要麻烦一点?
2,LoadBitmap 函数的第二个参数:ByVal lpBitmapName As Long 似乎不能直接用 VC 中创建位图时的名称(是不是这样称呼?),例如:IDB_BITMAP1、IDB_BITMAP2、...等等,而应直接用位图资源的值,例如:104、105、...等等。
3,LoadIcon 函数的第二个参数:ByVal lpIconName As Long 也是如此。二、疑问:
1,是否位图(和图标)的资源名称(IDB_BITMAPn)经编译后就没有意义了,
2,创建纯资源dll时,哪里能调整资源的ID号?头文件(resource.h)里吗?
3,希望有人指点?

解决方案 »

  1.   

    1.IDB_BITMAPn本身就是一系列常数
    2.头文件和资源编辑器里都可以调整ID号的吧……
      

  2.   

    '如下语句,又是资源定位不对:
    hIcon = LoadIcon(hRes, IDI_ICON1)
    'IDI_ICON1是VC环境下的资源名称(到底叫什么?其实我不会VC)?)'如下语句,资源定位比较准:
        hIcon = LoadIcon(hRes, 103)
    '103 是我用资源黑客(ResHacker)看到的资源ID号(还是叫值?)
      

  3.   

    二、疑问:
    1,是否位图(和图标)的资源名称(IDB_BITMAPn)经编译后就没有意义了,
    2,创建纯资源dll时,哪里能调整资源的ID号?头文件(resource.h)里吗?
    3,希望有人指点?
    ============================================================1、在VC中,如IDB_BITMAPn是有定义的常数,在VB中使用,当然也要定义相应的常数。
    2、用VS.net直接打开DLL文件可修改。
      

  4.   

    例如:
    声明区:
    Private Const IDI_ICON1 = 103调用时:
    hIcon = LoadIcon(hRes, IDI_ICON1)
      

  5.   

    另外,纯资源的DLL没必要用VC写,用VB写能使你的程序更健壮。
      

  6.   

    十分感谢蓝水晶。
    VB的工龄比较长了,但VB写dll从没做过,有没有快捷一点的参考,我不喜欢从头开始。
      

  7.   

    回复人: Gujianda() ( ) 信誉:94  2005-5-8 17:26:12  得分: 0  
     
     
       
    十分感谢蓝水晶。
    VB的工龄比较长了,但VB写dll从没做过,有没有快捷一点的参考,我不喜欢从头开始。=========================================================================打开MSDN,在“索引”页写下“ActiveX DLL”,回车,有相关的详细帮助。
      
     
      

  8.   

    打开MSDN,在“索引”页写下“资源编辑器”,有关于在VB中如何使用资源编辑器的详细帮助。