Monday 15 July 2013

c++ - VB.NET pointer to a pointer to C -


मेरे पास एक सी ++ फ़ंक्शन है:

  MYDLL_API int scanfile (हैंडल हैंडल, const char * फ़ाइल नाम, const char ** virname) {* virname = "virusA"; }   

पैरामीटर ** virname मेरा मानना ​​है कि एक संकेतक के लिए एक सूचक है। अब मेरे पास VB.NET में फ़ंक्शन की घोषणा है जो कि इस फ़ंक्शन को कॉल करेगा, सी ++ फ़ंक्शन द्वारा वायरमेन को संशोधित करने की उम्मीद कर रहा है।

  DllImport ("mydll.dll", कॉलिंगसंकेत: = CallingConvention.Cdecl) & gt; _ सार्वजनिक साझा समारोह scanfile (पूर्णांक के रूप में संभाल, ByVal strpath स्ट्रिंग के रूप में, ByRef virname2 स्ट्रिंग के रूप में) पूर्णांक समापन समारोह के रूप में   

क्या मैं DLL को बुला रहा हूं?

ऐसा लगता है कि 'virname' सी स्ट्रिंग्स की एक सरणी है (* virname = "virusA" सिर्फ पहली स्ट्रिंग सेट करता है - यह समतुल्य है Virname [0] = "virusA") के लिए, तो आपको निम्न पैरामीटर के लिए निम्नलिखित का उपयोग करना चाहिए:

  ByVal virname () स्ट्रिंग के रूप में    

No comments:

Post a Comment