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

时间:2009-12-31 17:08:16

标签: visual-studio-2008 c++-cli

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

3 个答案:

答案 0 :(得分:12)

在C ++ / Cli项目下,转到“属性...”,然后在“链接器”下查看,然后在“输入”下,您将看到“嵌入托管资源文件”下的嵌入文件列表。

答案 1 :(得分:1)

这是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?
}

答案 2 :(得分:1)

转到文件属性,常规项类型,选择已编译的托管资源

适用于VS2013

要访问程序中的资源:

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