मैं C++ निम्नलिखित struct है:मार्शल सी ++ struct सरणी
void GetData(LPRData *data);
: इन संरचनाओं की 3 की एक सरणी प्राप्त करने के लिए
#define MAXCHARS 15
typedef struct
{
char data[MAXCHARS];
int prob[MAXCHARS];
} LPRData;
और एक समारोह है कि मैं पी रहा हूँ/में लागू
C++ में मैं बस कुछ इस तरह करना होगा:
LPRData *Results;
Results = (LPRData *)malloc(MAXRESULTS*sizeof(LPRData));
GetData(Results);
और यह सिर्फ अच्छा काम करेंगे, लेकिन सी # में मैं यह काम करने के लिए नहीं कर पा रहे। मेरे द्वारा बनाए गए इस तरह एक सी # struct:
public struct LPRData
{
/// char[15]
[MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 15)]
public string data;
/// int[15]
[MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 15)]
public int[] prob;
}
और अगर मैं उन लोगों में से 3 (और उनके सभी उप-सरणियों) की एक सरणी को प्रारंभ और यह इस में पारित:
GetData(LPRData[] data);
यह
सफलता के साथ लौटता है, लेकिन एलपीआरडाटा सरणी में डेटा नहीं बदला है।
मैं भी एक कच्चे बाइट सरणी 3 LPRData के आकार बना सकते हैं और इस तरह एक समारोह प्रोटोटाइप में पारित करने के लिए है कि कोशिश की है:
GetData (बाइट [] डेटा);
लेकिन उस स्थिति में मुझे पहली एलपीआरडेटा संरचना से "डेटा" स्ट्रिंग मिल जाएगी, लेकिन इसके बाद कुछ भी नहीं, जिसमें एक ही एलपीआरडेटा से "प्रोब" सरणी शामिल है।
किसी भी विचार को ठीक से कैसे संभालना है इसका कोई विचार?
कहां जारी किया जा रहा है, मैंने इस दृष्टिकोण का उपयोग किया है, लेकिन मुझे मोनो में अपवाद मिलते हैं कि चर नल संदर्भों पर सेट हैं। उदाहरण के लिए, "prob" शून्य है इसलिए यह काम नहीं करना चाहता है। क्या मुझे किसी बिंदु पर इनका नया होना चाहिए, या क्या किसी भी तरह ढांचे द्वारा संभाला जाना चाहिए? धन्यवाद – swinefeaster