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

Visual studio 2008 在C+中嵌入资源+/CLI项目,visual-studio-2008,c++-cli,Visual Studio 2008,C++ Cli,我想在C++/CLI项目中嵌入一些文件(文本文件,可能是图形)——最好与我在C#project中的方法相同。然而,这可能是不可能的,正如我在这篇文章中发现的那样:。这是三年前写的,所以现在可能有办法(在VS2k8中)?在C++/Cli项目下,转到“属性…”,然后在“链接器”下,再看看“输入”,你会看到“嵌入托管资源文件”下的嵌入文件列表。这是对Tarydon评论的修饰,显示如何将嵌入式资源保存到文件: using namespace System::IO; ... String^ tmpFile

我想在C++/CLI项目中嵌入一些文件(文本文件,可能是图形)——最好与我在C#project中的方法相同。然而,这可能是不可能的,正如我在这篇文章中发现的那样:。这是三年前写的,所以现在可能有办法(在VS2k8中)?

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

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

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

在VS2013工作

要访问程序中的资源,请执行以下操作:

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

如果在此处添加一个名为test.dat的文件,则可以如下方式访问它:Stream ^stm=Assembly::GetExecutionGassembly()->GetManifestResourceStream(“test.dat”);另外,为了以防万一,请检查nullptr。