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