2009-12-31 10 views
5

Mi piacerebbe incorporare alcuni file (file di testo, magari grafici) in un progetto C++/CLI, preferibilmente nello stesso modo in cui posso fare nel progetto C#. Questo potrebbe essere comunque impossibile, come ho trovato in questo post: http://bytes.com/topic/net/answers/571530-loading-markup-xamlreader-load-resource-file#post2240705. Questo è stato scritto tre anni fa, quindi forse ora c'è un modo per farlo (in VS2k8)?Incorporamento di risorse in un progetto C++/CLI

risposta

11

In C++/Cli progetto andare su "Proprietà ...", quindi cercare sotto "Linker", e quindi "Input", vedrete l'elenco dei file incorporati in "Incorpora file di risorse gestite".

+5

Se si aggiunge un file chiamato qui test.dat, allora si può accedere in questo modo: flusso^STM = Assemblea :: GetExecutingAssembly() -> GetManifestResourceStream ("test.dat"); – Tarydon

+1

Inoltre, controllare nullptr per ogni evenienza. –

1

Questo è un abbellimento del commento di Tarydon, mostrando come salvare la risorsa incorporata in un file:

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? 
} 
1

Vai al file proprietà, generale, Tipo Item, selezionare Compiled Managed Resource

Lavori in VS2013

Per l'accesso alle risorse in programma:

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