代码之家  ›  专栏  ›  技术社区  ›  liori

在C++/CLI项目中嵌入资源

  •  6
  • liori  · 技术社区  · 15 年前

    我想在C++/CLI项目中嵌入一些文件(文本文件,可能是图形)——最好是与C语言项目中相同的方法。然而这可能是不可能的,正如我在这篇文章中发现的: http://bytes.com/topic/net/answers/571530-loading-markup-xamlreader-load-resource-file#post2240705 . 这是三年前写的,所以也许现在有办法做到这一点(在VS2K8中)?

    3 回复  |  直到 9 年前
        1
  •  12
  •   Hamish Grubijan    15 年前

    在C++/CLI项目的基础上,转到E.SytProjysE.AytAyl,然后在A.S.Link链接器下进行查找,然后在E.I.In输入下,将看到在嵌入的托管资源文件Ay中嵌入的文件列表。

        2
  •  1
  •   dlchambers    13 年前

    这是Tarydon评论的一个修饰,展示了如何将嵌入的资源保存到文件中:

    using namespace System::IO;
    ...
    String^ tmpFilename = System::IO::Path::GetTempFileName();
    try
    {
       Stream^ readStream = Assembly::GetExecutingAssembly()->GetManifestResourceStream("embedded_file_name.xyz");
       if(readStream != nullptr)
       {
           FileStream^ writeStream = gcnew FileStream(tmpFilename, FileMode::Create);
           readStream->CopyTo(writeStream);
           readStream->Close();
           writeStream->Close(); // Required to flush the buffer & have non-zero filesize
       }
    }
    catch (...)
    {
        // Do something?
    }
    
        3
  •  1
  •   Ondrej Petrzilka    9 年前

    转到文件属性, 一般 , 项目类型 选择 编译的托管资源

    作品在VS2013

    要访问程序中的资源:

    Stream^ stream = Assembly::GetExecutingAssembly()->GetManifestResourceStream("file.txt");