से एक स्ट्रक्चर के साथ कॉलिंग सी ++ कोड मुझे तीसरी पार्टी लाइब्रेरी दी गई थी जो एक सी # एपीआई में अप्रबंधित सी ++ कोड को लपेटती है, कार्यों में से एक पैरामीटर है जो मूल वैश्विक नामस्थान से एक संरचना प्रतीत होता है हम कैसे बनाते हैं सी # में उस संरचना का एक उदाहरण? इसकी सुरक्षा स्तर के कारणसी #
struct GroupInfo
{
int cMembers; // Current # of members in the group.
char saMembers[cMaxMembers][cMaxLoginID + 1]; // Members themselves.
};
जब हम सी # में यह का एक उदाहरण घोषित करने के लिए कोशिश संकलक वैश्विक कहते हैं :: GROUPINFO उपलब्ध नहीं है:
यह C++ Struct है।
C++ हस्ताक्षर
int QueryGroup(char* sGroupName,
GroupInfo& gi);
सी # हस्ताक्षर
VMIManaged.QueryGroup(sbyte*, GroupInfo*)
मैं एक वर्ग बुलाया समूह जानकारी है
class GroupInfo
{
public int cMembers;
public sbyte[,] saMembers;
}
और जब मैं लागू करने के लिए है कि इस कोड का उपयोग मैं पाने की कोशिश एक नहीं कर सकते परिवर्तित त्रुटि
GroupInfo gi = new GroupInfo();
unsafe
{
sbyte* grpName;
fixed (byte* p = groupNameBytes)
{
grpName = (sbyte*)p;
}
return vmi.QueryGroup(grpName, gi); // cannot convert from class GroupInfo to GroupInfo*
}
कुछ स्निपेट आपके द्वारा दिए गए से यह समझने के लिए इस मुद्दे को ठीक है कठिन है । क्या आप असफल होने वाले कोड की रेखा प्रदान कर सकते हैं? – mageos
टिप्पणी magesos के लिए धन्यवाद मैंने असफल होने वाली रेखा के साथ पोस्ट को संशोधित किया है। – user2379915
क्या आपने vmi.QueryGroup (grpName, &gi);? – mageos