2009-12-31 12 views
5

मैं सी ++/सीएलआई प्रोजेक्ट में कुछ फाइलें (टेक्स्ट फाइल, शायद ग्राफिक्स) एम्बेड करना चाहता हूं - अधिमानतः मैं सी # प्रोजेक्ट में ऐसा कर सकता हूं। यह हालांकि असंभव हो सकता है, जैसा कि मैंने इस पोस्ट में पाया: http://bytes.com/topic/net/answers/571530-loading-markup-xamlreader-load-resource-file#post2240705। यह तीन साल पहले लिखा गया था, तो शायद अब ऐसा करने का कोई तरीका है (वीएस 2 के 8 में)?सी ++/सीएलआई प्रोजेक्ट में संसाधन एम्बेड करना

उत्तर

11

सी ++/क्ली प्रोजेक्ट के तहत "गुण ..." पर जाएं, फिर "लिंकर" के अंतर्गत देखें, और फिर "इनपुट", आपको "एम्बेडेड प्रबंधित फ़ाइल फ़ाइल" के अंतर्गत एम्बेडेड फ़ाइलों की सूची दिखाई देगी। ,

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? 
} 
+5

आप यहाँ test.dat नामक एक फ़ाइल जोड़ने, तो आप इसे इस तरह उपयोग कर सकते हैं: स्ट्रीम^एसटीएम = विधानसभा :: GetExecutingAssembly() -> GetManifestResourceStream ("test.dat"); – Tarydon

+1

इसके अलावा, मामले में बस nullptr के लिए जाँच करें। –

1

यह Tarydon की टिप्पणी का एक गहना, कैसे एक फाइल करने के लिए एम्बेडेड संसाधन को बचाने के लिए दिखा रहा है VS2013

में

निर्माण कार्यक्रम में संसाधन का उपयोग करने के लिए:

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

जाओ गुण दायर करने के लिए, जनरल, मद प्रकार चयन संकलित प्रबंधित संसाधन:

संबंधित मुद्दे