2010-01-08 23 views
105

मुझे निम्न त्रुटि क्यों मिलती है?मुझे त्रुटि क्यों मिलती है "असुरक्षित कोड केवल तभी दिखाई दे सकता है जब/असुरक्षित हो"?

असुरक्षित कोड के साथ ही/असुरक्षित संकलन करता है, तो शायद क्योंकि आप असुरक्षित उपयोग कर रहे हैं प्रकट हो सकता है? "

मैं पर Windows   सीई प्रोग्रामिंग के लिए सी # और विजुअल स्टूडियो 2008 में काम करते हैं।

+1

देखें http://msdn.microsoft.com/en-us/library /ezb5hwx9%28VS.80%29.aspx और http://msdn.microsoft.com/en-us/library/t2yzs44b%28VS.80%29.aspx –

उत्तर

200

असुरक्षित कोड ब्लॉक का उपयोग करने के लिए, परियोजना को/असुरक्षित स्विच के साथ संकलित किया जाना है।

प्रोजेक्ट के लिए गुण खोलें, Build टैब पर जाएं और Allow unsafe code चेकबॉक्स को चेक करें।

+3

मुझे यह कहना चाहिए कि भले ही निर्माण को संकलित करने में सक्षम बनाता है, फिर भी यह वेब पर प्रकाशित होने की अनुमति नहीं देता है:/ – Nick

+3

@ निक: हाँ, यदि आप कोड को गतिशील रूप से संकलित करने के लिए प्रकाशित करते हैं, तो प्रोजेक्ट सेटिंग्स नहीं होती लागू नहीं है। Http://stackoverflow.com/questions/16567197/asp-net-publish-web-plplication-with-unsafe-code – Guffa

+4

देखें ध्यान दें कि सेटिंग्स डीबग और रिलीज़ संकलन के बीच भिन्न हो सकती हैं। यह सिर्फ मेरे जीवन के 20 मिनट मुझे खर्च किया। – LosManos

4

कोड।

आप संकेत या अप्रबंधित विधानसभाओं कहीं साथ कुछ कर रहे हैं?

3

खोजें अपने कोड च या unsafe ब्लॉक या बयान। ये केवल वैध हैं /unsafe के साथ संकलित है।

2

असुरक्षित कोड ब्लॉक का उपयोग करने के लिए, इस परियोजना के लिए गुण खोलें, बिल्ड टैब पर जाएँ और जाँच असुरक्षित कोड चेकबॉक्स की अनुमति दें, तो संकलन और चलाते हैं।

class myclass 
{ 
    public static void Main(string[] args) 
    { 
     unsafe 
     { 
      int iData = 10; 
      int* pData = &iData; 
      Console.WriteLine("Data is " + iData); 
      Console.WriteLine("Address is " + (int)pData); 
     } 
    } 
} 

आउटपुट:

Data is 10 
Address is 1831848 
113

यहाँ एक स्क्रीनशॉट है:

Unsafe screenshot

+3

महत्वपूर्ण: यह भी ध्यान रखें कि यह स्क्रीनशॉट "कॉन्फ़िगरेशन: सक्रिय (डीबग)" के लिए है। आपको शायद इसे "रिलीज" के लिए भी बदलना होगा, क्योंकि यह संभव है कि आप जो प्रकाशित कर रहे हैं वह सबसे अधिक संभावना है। –

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