Hallo,
kann mir jemand sagen, wie ich in cpp ein array als rückgabe hinbekomme. Ziel ist es eine dll in cpp zu schreiben und diese möchte ich dann in .net mittels p/invoke einbinden. Anschließend rufe ich eine Methode auf und erwarte (eigentlich) nen Array als Rückgabe. Leider funktioniert das bei mir nich so gut, da ich immer nur die ersten zwei Stellen des Strings/Arrayindex bekomme (ohne \0).
Wenn ich diese Methode von extern aufrufe, dann bekomme ich bei Arrayindex 0 --> "12"
und bei Arrayindex 1 --> "67" aber mehr nicht. Woran kann das liegen? Habe ich evtl. nicht genug bzw. explizit kein speicher allokiert oder...?
mfG
kann mir jemand sagen, wie ich in cpp ein array als rückgabe hinbekomme. Ziel ist es eine dll in cpp zu schreiben und diese möchte ich dann in .net mittels p/invoke einbinden. Anschließend rufe ich eine Methode auf und erwarte (eigentlich) nen Array als Rückgabe. Leider funktioniert das bei mir nich so gut, da ich immer nur die ersten zwei Stellen des Strings/Arrayindex bekomme (ohne \0).
Code:
char* List_NetworkAdapter[256];
extern "C" __declspec(dllexport) void* getNetworkAdapter()
{
/*for (int i = 0; i < 256; i++)
{
List_NetworkAdapter[i] = (string)malloc(sizeof(char)*256);
}*/
List_NetworkAdapter[0] = "1234567890";
List_NetworkAdapter[1] = "67890";
return List_NetworkAdapter;
}
Wenn ich diese Methode von extern aufrufe, dann bekomme ich bei Arrayindex 0 --> "12"
und bei Arrayindex 1 --> "67" aber mehr nicht. Woran kann das liegen? Habe ich evtl. nicht genug bzw. explizit kein speicher allokiert oder...?
mfG