Встраивание ресурса в проект 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");