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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top