.net - What is the proper PInvoke signature for a function that takes var args? -
एक मूल फ़ंक्शन है:
int sqlite3_config (int, ...);
मैं PInvoke को इस समारोह में करना चाहता हूं। वर्तमान में, मुझे यह घोषणा है:
[DllImport ("sqlite3", एंट्रीपॉईंट = "sqlite3_config")) सार्वजनिक स्थिर बाह्य विकल्प कॉन्फ़िगर (कॉन्फ़िगरेशन विकल्प);
(परिणाम और कॉन्फ़िगरेशन फार्म का
आपको __ रैगर कीवर्ड (जो कि undocumented है) का उपयोग करने की आवश्यकता है, बार्ट # का
उदाहरण
वर्ग कार्यक्रम {[DllImport ("user32.dll")] स्थिर extern int wsprintf ([आउट] StringBuilder lpOut, स्ट्रिंग lpFmt, __arglist); स्थिर शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {var sb = नया स्ट्रिंगबिल्डर (); Wsprintf (एसबी, "% s% s% s", __ कलाकार ("1", "2", "3")); Console.Write (sb.ToString ()); }}
यह विभिन्न तरीकों को पिनविोक करने का कोई मानक तरीका नहीं है, अधिकांश समाधान इसे कई तरीकों में लपेटेगा उदा।
[DllImport ("MyDll", कॉलिंग कन्वेंशन = कॉलिंग कन्वेंशन। सीडीसीएल)] स्थिर एक्सटर्न वाई MyArrgMethods1 (स्ट्रिंग एफएमटी, स्ट्रिंग एजी 1); [DllImport ("MyDll", कॉलिंग कन्वेंशन = कॉलिंग कन्वेंशन। CDEcl)) स्थिर Extern var MyVarArgMethods2 (स्ट्रिंग fmt, स्ट्रिंग arg1, स्ट्रिंग arg2);
Comments
Post a Comment