【问题标题】:Visual Studio 2013 Express - How do I add resources?Visual Studio 2013 Express - 如何添加资源?
【发布时间】:2014-04-30 12:19:38
【问题描述】:

我目前正在链接到 SFML 中的 >dynamic

我知道 .rc 文件和标题有一些东西,但我没有找到任何关于它的指南。我需要做的是添加 dll,这样我就不必使用 .exe 手动粘贴它们,而且我还需要添加 .png。现在我正在从可执行文件旁边的文件夹中加载它们,我不想这样做。

我该怎么做?

【问题讨论】:

    标签: c++ resources visual-studio-2013 sfml


    【解决方案1】:

    您可以在项目中添加一个 [.rc] 文件。

    [.rc] 文件是纯文本的资源脚本,您可以将其编辑为文本,或者您可以使用各种 3rd 方资源编辑器(您不需要不需要它来添加图像资源,只需查看RC syntax)。

    Visual Studio Express 缺少资源编辑器,但支持自动识别、编译和链接资源。


    示例

    这是一个示例 [.rc] 文件,只有一行,使用我刚刚从网上下载的免费图标:

    100 ICON "resources\\Bad-Blood-Yolks-Grin.ico"
    

    对应的C++源码,在消息框中呈现图标:

    #undef UNICODE
    #define UNICODE
    #include <windows.h>
    
    auto main() -> int
    {
        MSGBOXPARAMS params = {sizeof( params )};
        params.hInstance        = GetModuleHandle( nullptr );
        params.lpszText         = L"Click OK to dismiss this box.";
        params.lpszCaption      = L"Καλὴ τύχη!";        // "Good luck!" in Greek.
        params.dwStyle          = MB_USERICON;
        params.lpszIcon         = MAKEINTRESOURCE( 100 );
    
        MessageBoxIndirect( &params );
    }
    

    结果:

    所有都在 Visual C++ Express for Desktop 2013 中完成,或者任何它自己的名字。 :-)

    为了在资源脚本和 C 或 C++ 代码之间同步标识符,通常包含标头。资源编译器了解最基本的 C 预处理器指令。

    哦,另外,我将 [.rc] 文件添加为文本文件。 Visual Studio Express 对重命名的“rc”文件扩展名做出反应,弹出一个警告框,表明它不受支持。只需忽略该框,然后右键单击并选择文本编辑器来编辑文件。

    【讨论】:

    • 我目前正在阅读这些页面:msdn.microsoft.com/enus/library/windows/desktop/… msdn.microsoft.com/en-us/library/y3sk7e6b.aspx 我不能说我从中变得更聪明了,呵呵。你介意给我一个 .rc 文件的例子吗?
    • puu.sh/8tzAk.png 这就是我现在的样子,给我一个错误,告诉我找不到 cube0.png。错误 RC2135:找不到文件:资源文件\sprites\cube0.png
    • 路径是相对于项目目录的
    • 啊,干杯人。现在它起作用了! :) 感谢您抽出宝贵时间,我非常感谢,但我需要再问一件事。如何编译资源?我在这里读到,您可以将资源放入 DLL 中,还可以从 .res 文件中创建 .obj?
    • 编译:RC2135错误消息是由资源编译器发出的,所以你已经在编译和嵌入(嵌入是通过将编译的资源文件.res指定到普通链接器来完成的, Visual Studio 会自动为您执行此操作)。 DLL 与 .exe 文件基本相同,它们都是 PE(可移植可执行文件)格式。使用 Microsoft 的工具不需要从 .res 文件中制作 .obj ,但我有一个模糊的记忆,也许 GNU g++ 有必要这样做。没有把握。这些工具链在 .rc 语法的细节以及它们接受的编码方面有所不同。
    猜你喜欢
    • 1970-01-01
    • 2014-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-04
    • 2010-12-16
    • 2012-03-08
    相关资源
    最近更新 更多