none
资源文件可以使用自定义的资源关键字吗? RRS feed

答案

  • 王青石,

    您好!

    >>ICON_1     ICON   "res/1.ico"
    >>ICON_2     ICON   "res/2.ico"
    >>ICON_3     ICON   "res/3.ico"
    >>ICON_4     ICON   "res/4.ico"

    >>PNG_1     PNG    "res/1.png"
    >>PNG_2     PNG    "res/2.png"
    >>PNG_3     PNG    "res/3.png"

    >>提示不能载入图片“res/3.png”,文件不存在

    (一) 请您尝试把路径改下,如"res/3.png" 改成 "res\\3.png“ 看下问题还是否存在。

     

    (二)您如果想在vc++工程中使用自定义关键字,您可以使用以下步骤:

    1. 创建一个纯文本的文件,命名为usertype.dat.
    2. 在这个文件中可以输入以下字

    ; UserType.Dat - for defining your own keywords to use in Visual C++

    ; Copyright(c) 1997 Microsoft Corporation. All Rights Reserved.

    ;---------------------------------------------------------------

    CMyClass

    1. 把这个文件存在devenv.exe所在的路径下。(比如我用的windows 7系统,使用的是vs2010,这个路径就是:C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE
    2. 退出并重启VS.
    3. Tools Options 对话框中,选择 User keywordDisplay items 选项中;

    这个您就顺利在vc工程中加入自定义的关键字了。详细请看:http://msdn.microsoft.com/en-us/library/zy61y8b8(v=VS.71).aspx

     

    (三)如果您只是想加入一个png图片的话, 我们可以使用以下步骤:

    1.首先,Resource.h里面定义ID:

    #define IDB_BG                           131


    2.然后在rc文件里面添加代码:

             IDB_BG                   RCPNG                   "res\\背景.png"

             3.FindResource在一个指定的模块中定位所指定的资源:

             4.LoadResource将所指定的资源加载到内存当中;

             5.LockResource锁定内存中的资源数据块,它的返回值也就是我们要使用的直系指向资源数据的内存指针;

             6.UnlockResourceFreeResource来手动地释放资源;

    如果您的问题解决了,请把 有用的回答标记为答案!

     

    谢谢,

    Lucy

     


    Lucy Liu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年3月9日 4:08
    版主

全部回复

  • 你可以import自己的文件,然后为其创建对应的资源名称


    麻烦把正确答案设为解答。
    2011年3月7日 10:35
    版主
  • 你可以import自己的文件,然后为其创建对应的资源名称


    麻烦把正确答案设为解答。


    如何import自己的文件?能给个例子吗?我在网上找不到具体的资料。不知道我这样写对不对:

    ICON_1     ICON   "res/1.ico"
    ICON_2     ICON   "res/2.ico"
    ICON_3     ICON   "res/3.ico"
    ICON_4     ICON   "res/4.ico"

     

    PNG_1     PNG    "res/1.png"
    PNG_2     PNG    "res/2.png"
    PNG_3     PNG    "res/3.png"

     

     

    其中,ICON是原本自己的关键字,PNG这个关键字是我自己定义的。

    2011年3月7日 15:44
  • 可以的,你可以自定义资源的类型


    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.
    2011年3月8日 1:27
    版主
  • 在resource view中,选中rc文件,右键,选择Add Resource,然后import你的文件。就可以了。


    麻烦把正确答案设为解答。
    2011年3月8日 3:11
    版主
  • 可以的,你可以自定义资源的类型


    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.


    像我写的那样,在实际使用的时候总是出错,一样的读取图片,但是总提示我找不到“res/3.png”,换成ICON就没有问题了。而且我发现,自定义的资源和标准的资源不一样,在名字上加了一个双引号:默认的图标关键字显示为Icon,自定义的png就是"Png"这样了。

     

    • 已编辑 王青石 2011年3月8日 16:25 补充更详细的内容
    2011年3月8日 16:15
  • 在resource view中,选中rc文件,右键,选择Add Resource,然后import你的文件。就可以了。


    麻烦把正确答案设为解答。

    导入以后,使用的时候还是不行,ICON用起来没问题,但是一到自定义的数据,使用的时候就报错,提示“不能载入图片“res/3.png”,文件不存在”。

    前面忘了说了,我用的wxWidgets,是不是跟wxWidgets的内部实现机制有关?

    2011年3月8日 16:37
  • 王青石,

    您好!

    >>ICON_1     ICON   "res/1.ico"
    >>ICON_2     ICON   "res/2.ico"
    >>ICON_3     ICON   "res/3.ico"
    >>ICON_4     ICON   "res/4.ico"

    >>PNG_1     PNG    "res/1.png"
    >>PNG_2     PNG    "res/2.png"
    >>PNG_3     PNG    "res/3.png"

    >>提示不能载入图片“res/3.png”,文件不存在

    (一) 请您尝试把路径改下,如"res/3.png" 改成 "res\\3.png“ 看下问题还是否存在。

     

    (二)您如果想在vc++工程中使用自定义关键字,您可以使用以下步骤:

    1. 创建一个纯文本的文件,命名为usertype.dat.
    2. 在这个文件中可以输入以下字

    ; UserType.Dat - for defining your own keywords to use in Visual C++

    ; Copyright(c) 1997 Microsoft Corporation. All Rights Reserved.

    ;---------------------------------------------------------------

    CMyClass

    1. 把这个文件存在devenv.exe所在的路径下。(比如我用的windows 7系统,使用的是vs2010,这个路径就是:C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE
    2. 退出并重启VS.
    3. Tools Options 对话框中,选择 User keywordDisplay items 选项中;

    这个您就顺利在vc工程中加入自定义的关键字了。详细请看:http://msdn.microsoft.com/en-us/library/zy61y8b8(v=VS.71).aspx

     

    (三)如果您只是想加入一个png图片的话, 我们可以使用以下步骤:

    1.首先,Resource.h里面定义ID:

    #define IDB_BG                           131


    2.然后在rc文件里面添加代码:

             IDB_BG                   RCPNG                   "res\\背景.png"

             3.FindResource在一个指定的模块中定位所指定的资源:

             4.LoadResource将所指定的资源加载到内存当中;

             5.LockResource锁定内存中的资源数据块,它的返回值也就是我们要使用的直系指向资源数据的内存指针;

             6.UnlockResourceFreeResource来手动地释放资源;

    如果您的问题解决了,请把 有用的回答标记为答案!

     

    谢谢,

    Lucy

     


    Lucy Liu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年3月9日 4:08
    版主
  • 王青石,

    您好!

    >>ICON_1     ICON   "res/1.ico"
    >>ICON_2     ICON   "res/2.ico"
    >>ICON_3     ICON   "res/3.ico"
    >>ICON_4     ICON   "res/4.ico"

    >>PNG_1     PNG    "res/1.png"
    >>PNG_2     PNG    "res/2.png"
    >>PNG_3     PNG    "res/3.png"

    >>提示不能载入图片“res/3.png”,文件不存在

    (一) 请您尝试把路径改下,如"res/3.png" 改成 "res\\3.png“ 看下问题还是否存在。

     

    (二)您如果想在vc++工程中使用自定义关键字,您可以使用以下步骤:

    1. 创建一个纯文本的文件,命名为usertype.dat.
    2. 在这个文件中可以输入以下字

    ; UserType.Dat - for defining your own keywords to use in Visual C++

    ; Copyright(c) 1997 Microsoft Corporation. All Rights Reserved.

    ;---------------------------------------------------------------

    CMyClass

    1. 把这个文件存在devenv.exe所在的路径下。(比如我用的windows 7系统,使用的是vs2010,这个路径就是:C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE
    2. 退出并重启VS.
    3. Tools Options 对话框中,选择 User keywordDisplay items 选项中;

    这个您就顺利在vc工程中加入自定义的关键字了。详细请看:http://msdn.microsoft.com/en-us/library/zy61y8b8(v=VS.71).aspx

     

    (三)如果您只是想加入一个png图片的话, 我们可以使用以下步骤:

    1.首先,Resource.h里面定义ID:

    #define IDB_BG                           131


    2.然后在rc文件里面添加代码:

             IDB_BG                   RCPNG                   "res\\背景.png"

             3.FindResource在一个指定的模块中定位所指定的资源:

             4.LoadResource将所指定的资源加载到内存当中;

             5.LockResource锁定内存中的资源数据块,它的返回值也就是我们要使用的直系指向资源数据的内存指针;

             6.UnlockResourceFreeResource来手动地释放资源;

    (一) 请您尝试把路径改下,如"res/3.png" 改成 "res\\3.png“ 看下问题还是否存在。

    试过了,问题依然存在。

     

    (二)您如果想在vc++工程中使用自定义关键字,您可以使用以下步骤:

    试过了,但在选项中并没有出现User keyword这个选项。跟我用的是Visual Studio 团体开发版有关吗?

    (三)如果您只是想加入一个png图片的话, 我们可以使用以下步骤:

    试过了,我想可能是因为我使用的是wxWidgets,所以这些个函数都没有。。。汗。

     

     

     

    2011年3月9日 5:50
  • 王青石,

    您好,根据您的表述,我建议您可以到wxWidgets 论坛问问(如:http://wxforum.shadonet.com/)。

    祝您问题早日解决。

     

    谢谢,

    Lucy


    Lucy Liu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年3月11日 6:03
    版主