मैं यूडीके से सी # डीएल बांधने पर काम कर रहा हूं, जिसमें आपको बूल मानों के लिए एक हस्ताक्षरित 32 बिट पूर्णांक वापस करना होगा - इसलिए 0 झूठा है, कुछ भी बड़ा है सच हैं। UDK मूल्य हो जाता है और सही या गलत में बदल देता है ...सी # रिटर्निंग UInt32 बनाम Int32 - C# सोच 0 और 1 इंट 32
मैं कुछ कोड कर रहा था और पाया इस:
"त्रुटि:
[DllExport("CheckCaps", CallingConvention = CallingConvention.StdCall)] public static UInt32 CheckCaps() { return (Console.CapsLock ? 1 : 0); }
मुझे त्रुटि दे दी है , परोक्ष 'uint' में बदल सकते हैं नहीं प्रकार 'int'। एक स्पष्ट रूपांतरण मौजूद है (यदि आप एक डाली याद कर रहे हैं?) "
जब मैं त्रुटि को समझते हैं, मैं फ्लॉप जिस तरह से यह सी # की स्ट्रिंग typecasting के साथ इस मुद्दे, तो आप इस अगर जहां की तरह लग रहा से
if (File.Exists(filepath))
return 1;
else
return 0;
करने से पहले यह मुद्दा है:
int example = 5;
Console.Writeline(example);
Console.Writeline(example + "");
पहले Console.WriteLine एक त्रुटि दे देंगे क्योंकि सी # एक स्ट्रिंग
मैं समझता हूं कि इन त्रुटियों के पीछे तार्किक कारण हैं (जैसा कि वे इन स्थितियों में होते हैं), लेकिन कनवर्ट करने के अलावा इस के लिए कोई फिक्स है। TUUInt32 (1) और कनवर्ट करें। ToUInt32 (0)?
(मैं एक फिक्स कैसे आप तैरता के लिए 0.f जा सकते हैं के लिए समान के लिए आशा करती हूं कि, लेकिन अहस्ताक्षरित intergers के लिए)
कृपया आईडीई और एक कंपाइलर के बीच अंतर जानें। विजुअल स्टूडियो कुछ भी नहीं सोचता है, क्योंकि यह केवल एक विकास वातावरण है जो कई अलग-अलग भाषाओं और कंपाइलर्स होस्ट करता है। समस्या सी #, और * नहीं * विजुअल स्टूडियो के साथ है। भेद महत्वपूर्ण है। –
क्षमा करें हाँ, मैं समझता हूं। यह मुझे आलसी था ... मैं –