इस सी एपीआई घोषणा को देखते हुए इसे सी # में कैसे आयात किया जाएगा?सी # में शून्य * सी एपीआई कैसे आयात करें?
int _stdcall z4ctyget(CITY_REC *, void *);
मैं इतनी दूर प्राप्त करने में सक्षम किया गया है:
[DllImport(@"zip4_w32.dll",
CallingConvention = CallingConvention.StdCall,
EntryPoint = "z4ctygetSTD",
ExactSpelling = false)]
private extern static int z4ctygetSTD(ref CITY_REC args, void * ptr);
स्वाभाविक सी # में "शून्य *" संकलन नहीं है।
कुछ गूगलिंग इंगित करता है कि इसे "ऑब्जेक्ट" के रूप में अनुवादित किया जाना चाहिए। ऐसा लगता है कि इसे काम करना चाहिए। लेकिन अन्य संकेत देते हैं कि "शून्य * को सी/सी ++ शर्तों में फ़ंक्शन पॉइंटर कहा जाता है, जिसमें सी # शब्द एक प्रतिनिधि होता है"। यह यहां पूरी तरह से समझ में नहीं आता है कि यह किसके लिए प्रतिनिधि होगा? गूगलिंग के माध्यम से पाए गए अन्य एपीआई के लिए कुछ समान कॉल संबंधित एपीआई में अन्य कार्यों का उपयोग करते हैं। लेकिन इस एपीआई में कोई अन्य कॉल समझ में नहीं आएगा।
z4ctyget(&city, “00000”);
पता चलता है कि यहां तक कि एक स्थिर मान भी भेजी जा सकती लगता है कौन सा:
कॉल के लिए प्रलेखन एक उदाहरण दिखाता है।
यह शून्य * के स्थान पर ऑब्जेक्ट के साथ संकलित करेगा। मुझे नहीं पता कि यह सही है या नहीं और मुझे इसका परीक्षण करने का मौका नहीं मिला है (लाइसेंस जारी करना)।
मेरा अनुमान है IntPtr –
है क्या आप सूचक के साथ क्या करना एक बार आप इसे मिल गया है करना चाहते हैं? मुझे लगता है कि आपको CITY_REC संरचना की आवश्यकता है, और आप 'पीटीआर' को अनदेखा करना चाहते हैं? –
@Erik - ठीक है, मुझे यकीन नहीं है। उपलब्ध दस्तावेज परम के उद्देश्य पर स्पष्ट नहीं है। –