मैं एक पोर्टेबल सी ++ एप्लिकेशन लिख रहा हूं। ऑपरेटिंग सिस्टम के आधार पर मैं विभिन्न शीर्षलेखों को कैसे शामिल करूं? क्या सी ++ में ऐसा करने का कोई तरीका है या क्या मुझे बिल्ड सिस्टम का उपयोग करना है?मैं अपने ओएस के आधार पर अलग-अलग शीर्षलेख कैसे शामिल करूं?
उत्तर
:
#ifdef _SUNOS
//code
#elseif _LINUX
//code
#elseif _HPUX
//code
#elseif _WIN32
//code
#else
#error OS not supported
#endif
यहां एक [पूर्वनिर्धारित मैक्रोज़ की सूची] है (http://predef.sourceforge.net/preos.html)। – roshanvid
@ c0smikdebris: धन्यवाद :) – BlackBear
ध्यान दें कि _WIN32 को 32-बिट और 64-बिट विंडोज दोनों पर परिभाषित किया गया है। – user763305
हम लिनक्स (रेड हैट एंटरप्राइज 5), रवि (Solaris) और Windows पर विकसित करना।
#ifndef MSWINDOWS
#include <unistd.h>
#else
#include <winbase.h>
#endif
//More includes here
मैं पूर्वप्रक्रमक निर्देशों और एक पार मंच का निर्माण प्रणाली जैसे CMake का प्रयोग करेंगे: हमारी प्रणाली कुछ इस तरह का प्रयोग है। आप कर सकता है: -DLINUX
:
#ifdef LINUX
#include <unistd.h>
#elif defined(WINDOWS)
#include <algorithm.h>
# elif Defined(MAC_OSX)
//... etc.
#else
#error No operating system defined
#endif
तो जैसे, निर्माण करने के लिए इसी पूर्वप्रक्रमक झंडा जोड़ें।
मुझे लगता है कि यह एक अच्छा विचार है। हाल ही में संकलक द्वारा उपयोग की जाने वाली परिभाषाओं का उपयोग करके ऐसा करने की कोशिश की लेकिन मैंने छोड़ दिया, इतने सारे बदलाव हैं और क्या नहीं। मुझे बिल्ड सिस्टम द्वारा निर्धारित अपनी खुद की परिभाषा का उपयोग करना आसान लगता है। – Skurmedel
- 1. मैं अपने सी ++ प्रोजेक्ट में SQLite DLL कैसे शामिल करूं?
- 2. मैं अपने .csproj फ़ाइल में DLL कैसे शामिल करूं?
- 3. मैं शर्त के आधार पर कॉलम का चयन कैसे करूं?
- 4. मैक ओएस एक्स पर मैं wxPython कैसे स्थापित करूं?
- 5. मैं एंड्रॉइड ओएस पर एडमोब का उपयोग कैसे करूं?
- 6. कोड के आधार पर, मैं
- 7. आईओएस डिवाइस प्रकार के आधार पर मैं अलग-अलग छवियों का उपयोग कैसे करूं?
- 8. मैं अपने एप्लिकेशन के मैक ओएस एक्स ऐप बंडल के लिए आइकन कैसे सेट करूं?
- 9. मैं एक gwt 2.1 सेलटेबल्स शीर्षलेख कैसे शैलीबद्ध करूं?
- 10. मैं अपने एडब्ल्यूएस आरडीएस पर डेटा संग्रहण कैसे प्राप्त करूं?
- 11. मैं अपने सर्वर पर पीडीएफटीके कैसे स्थापित करूं?
- 12. मैं प्रति-सिस्टम थीम के आधार पर आइकन संसाधन कैसे परिभाषित करूं?
- 13. मैं अपने वर्कफ़्लो में एक वैज्ञानिक प्रोग्रामर/छात्र/शोधकर्ता के रूप में टीडीडी कैसे शामिल करूं?
- 14. NuGet में लक्ष्य ढांचे के आधार पर मैं सशर्त निर्भरताओं को कैसे निर्दिष्ट करूं?
- 15. मैं अपने आईफोन एप्लिकेशन के साथ एक फ़ॉन्ट कैसे शामिल करूं?
- 16. मैं अपने स्वयं के प्रोजेक्ट में बाहरी जेएआर कैसे शामिल करूं JAR
- 17. प्रोग्राम इमारत ओएस विशिष्ट कार्यों के आधार पर बिना
- 18. मैं रनटाइम पर अपने डाइलिब के पथ को कैसे पुनर्प्राप्त करूं?
- 19. मैं अपने सर्वर पर नहीं होने वाली स्क्रिप्ट के लिए समाप्ति शीर्षलेख कैसे जोड़ सकता हूं?
- 20. मैं अपने PHP एप्लिकेशन के उपयोगकर्ताओं को कैसे सत्यापित करूं?
- 21. मैक ओएस एक्स पर स्क्रीन मेनू बार में अपने जेमेनूबार को कैसे स्थानांतरित करूं?
- 22. मैं एक साधारण बहुभुज के आधार पर एक छवि कैसे आकर्षित करूं?
- 23. मैं अपने एक्सटेंशन के आधार पर एस 3 में फ़ाइलों को कैसे सीमित कर सकता हूं?
- 24. django: GenericForeignKey के फ़ील्ड के आधार पर मैं क्वेरी कैसे करूं?
- 25. मैं अपनी स्थिति के आधार पर खाली UITableViewCell ऑब्जेक्ट के पृष्ठभूमि रंग को कैसे संशोधित करूं?
- 26. मैं कुंजी के आधार पर कोड के ब्लॉक को सिंक्रनाइज़ कैसे करूं?
- 27. बटन कार्रवाई के आधार पर मैं फ्रेम के अंदर पैनल कैसे स्विच करूं?
- 28. शीर्षलेख फ़ाइलें शामिल/अग्रेषित घोषणा
- 29. मैं एक चर के आधार पर एक स्कीमा का चयन कैसे करूं?
- 30. सूची। सूची आइटम की संपत्ति के आधार पर शामिल है
वहां, ऐसा किया। मुझे याद दिलाने के लिये धन्यवाद। – roshanvid
आपका स्वागत है। लेकिन * कृपया * निर्माण प्रणाली में ऐसा करें, यह आपके सॉफ़्टवेयर को बेहतर बनाए रखने योग्य बनाएगा। यदि मॉड्यूल को प्लेटफॉर्म-स्वतंत्र तरीके से लिखा नहीं जा सकता है (वे प्रायः बूस्ट या क्यूटी जैसे पुस्तकालयों के साथ esp।), तो ओएस सुविधाओं पर अपने स्वयं के अवशोषण तैयार कर सकते हैं और इन कई बार कार्यान्वित कर सकते हैं। –
सभी अच्छे उत्तरों। क्षमा करें अगर मैं स्पष्ट बता रहा हूं लेकिन ध्यान में रखता हूं कि आमतौर पर क्रॉस-प्लेटफार्म वाले हेडर और पुस्तकालयों का पक्ष लेने का अच्छा विचार है। किसी भी समय [सी ++ मानक लाइब्रेरी] (http://en.wikipedia.org/wiki/C%2B%2B_standard_library) की आपको आवश्यकता होती है, खुद से पूछें कि आप एक विकल्प क्यों चुनेंगे। –