Desidero dichiarare e inizializzare un array di elementi gestito 1D.Inizializzazione array in Managed C++
Se fosse codice C#, vorrei scrivere in questo modo:
VdbMethodInfo[] methods = new VdbMethodInfo[] {
new VdbMethodInfo("Method1"),
new VdbMethodInfo("Method2")
};
Sto cercando di scrivere (beh, in realtà, sto scrivendo un programma di generare) la stessa cosa in C++ gestito .. .
Finora ho:
typedef array<VdbMethodInfo^, 1> MethodArray;
// How do I avoid pre-declaring the size of the array up front?
MethodArray^ methods = gcnew MethodArray(2);
methods[0] = gcnew VdbMethodInfo("Method1");
methods[1] = gcnew VdbMethodInfo("Method2");
ci sono due problemi con questo:
- E 'più prolisso
- E mi obbliga a dichiarare la dimensione della matrice di fronte, che è scomodo per il mio generatore di codice
Esiste una sintassi "allineamento inizializzazione" per le matrici GC in Managed C++? Qual è la sintassi corretta? C'è un buon collegamento web per questa e altre domande simili?
grazie - esattamente quello che stavo cercando! –
Il decompilatore C++/CLI per riflettore mancava il gcnew e il tipo di array nella dichiarazione per qualche motivo. Aggiungendo quello risolto il problema. Grazie. http://www.sandpapersoftware.com/Main/Reflector.html – jpierson