के लिए प्रिंट() को पुनर्निर्देशित/पुन: परिभाषित करना मैंने अपने सी ++ एप्लिकेशन में लुआ को एम्बेड किया है। मैं प्रिंट स्टेटमेंट्स को पुनर्निर्देशित करना चाहता हूं (या शायद प्रिंट फ़ंक्शन को फिर से परिभाषित कर सकता हूं?), ताकि मैं कहीं और मूल्यांकन अभिव्यक्ति प्रदर्शित कर सकूं।एम्बेडेड लुआ
ऐसा करने का सबसे अच्छा तरीका क्या है: प्रिंट() फ़ंक्शन को पुनर्निर्देशित या फिर से परिभाषित करना?
कोई भी स्निपेट/पॉइंटर्स स्निपेट्स जो दिखाता है कि यह कैसे करना है, इसकी सराहना की जाएगी।
ऐसा लगता है कि लूआ स्रोतों को सीधे संशोधित करने का सुझाव है (मैं गलत हो सकता हूं) - लेकिन निश्चित रूप से, एक बेहतर तरीका होना चाहिए? – skyeagle
खैर, मेरे पास लुआ स्रोत को संपादित करने के लिए कोई विशेष विचलन नहीं है, जब तक कि मैं किसी भी चीज़ के अर्थशास्त्र को नहीं बदल रहा हूं। मैंने एक लुआ "कंपाइलर" लिखा जो एक्सईई में संसाधनों के रूप में फाइलों को बाध्य करता था, फिर फ़ाइल सिस्टम के बजाए निष्पादन योग्य संसाधनों से पढ़ने के लिए लुआ की फ़ाइल दिनचर्या को लगाता था। केवल स्रोत की कुछ पंक्तियों को बदलना पड़ा। कल्पना नहीं कर सकता कि क्या यह एक दुःस्वप्न था कि मैंने उन परिवर्तनों से बचने की कोशिश की थी। – Mud
समाधान माइक एम देता है जो लुआ कोड को छूता नहीं है। आप एक कस्टम प्रिंट फ़ंक्शन प्रदान करते हैं और इसे Lua C फ़ंक्शन 'lua_register (एल, "प्रिंट", my_print) के माध्यम से पंजीकृत करके डिफ़ॉल्ट को ओवरराइड करते हैं। –