के रूप में लेने वाले विधियों के साथ SWIG का उपयोग करके मैंने अपनी सी ++ कक्षा को लपेटने के लिए SWIG का उपयोग किया। कुछ तरीकों में पैरामीटर के रूप में const std::string&
है। एसडब्ल्यूआईजी SWIGTYPE_p_std__string
नामक एक प्रकार बनाता है हालांकि सी # में विधि का आह्वान करते समय आप इसके लिए सामान्य स्ट्रिंग पास नहीं कर सकते हैं।स्प्रिंग :: स्ट्रिंग को पैरामीटर
/* File : example.i */
%module example
%{
#include "example.h"
%}
/* Let's just grab the original header file here */
%include "example.h"
और विधि है कि सी ++ में लिपटे किया जा रहा है: नीचे दिए गए उदाहरण सिर्फ एक संशोधित उदाहरण है कि बड़ा घूँट पैकेज .:
public void setName(SWIGTYPE_p_std__string name)
{
examplePINVOKE.Shape_setName(swigCPtr, SWIGTYPE_p_std__string.getCPtr(name));
if (examplePINVOKE.SWIGPendingException.Pending) throw examplePINVOKE.SWIGPendingException.Retrieve();
}
के साथ आता है मेरी इंटरफ़ेस फ़ाइल में मैं सिर्फ है
void Shape::setName(const std::string& name)
{
mName = name;
}
क्या इंटरफ़ेस फ़ाइल में मुझे कुछ प्रकार का टाइपमैप रखना है? अगर ऐसा है, तो मैं वह कैसे करू?