Wie ein Doppel * auf ein Array konvertieren (6)
Frage
Ich habe eine Funktion, die ein Array von 6 verdoppelt zurück.
double* Validation();
Ich mag diesen Rückgabewert in verwaltetem Code werfen.
array<double>^ validationPosition = gcnew array<double>(6);
validationPosition = Validation();
Ich bekomme diese Fehlermeldung:
error C2440: '=' : cannot convert from 'double *' to 'cli::array<Type> ^'
Wie soll ich das tun?
Danke.
Lösung
Wenn Sie dies in einer verwalteten Array sein wollen, müssen Sie es in das Array kopieren. Die native double * Array wird nicht verwendet werden direkt als Managed-Array.
Sie können mit Marshall :: Kopieren Sie diese kopieren, oder einfach nur eine Schleife durch Ihre 6-Werte.
Sie wollen auch (wahrscheinlich) löschen [] Ihre Rückgabewerte, da es klingt wie es einen Array intern auf Ihre Validierung () Routine zugeordnet werden.
Andere Tipps
Sie können eine Funktion, die durchläuft jede Variable in der ursprünglichen Doppel * schreiben und in einem cli :: Array die Werte in den entsprechenden Behälter legt, dann das neue Array zurück.