Встраивание ресурса в проект C++ / CLI

Я хотел бы встроить некоторые файлы (текстовые файлы, возможно, графику) в проект C++/CLI-предпочтительно так же, как я могу сделать в проекте c#. Это может быть, однако, невозможно, как я нашел в этом посте: http://bytes.com/topic/net/answers/571530-loading-markup-xamlreader-load-resource-file#post2240705 - ... Это было написано три года назад, так что, может быть, теперь есть какой-то способ сделать это (в VS2k8)?

3 ответов


в проекте 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");