PDA

View Full Version : [visual c++] About Box


dileoa
20-02-2009, 22:11
:help:
Sto cercando di convertire alcune parti di un programma visual c# in visual c++ per la visualizzazione di una AboutBox (la finestra "informazioni su..."). Mi sono arenato sulla seguente riga di codice [c#], che dovrebbe consentire l'accesso alle proprietà del programma del file AssemblyInfo:

object[] attributes=Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute),false);

Provando e riprovando, penso di aver trovato il codice in c++ parzialmente corrispondente:

Object^ attributes=Assembly::GetExecutingAssembly()->GetCustomAttributes(AssemblyTitleAttribute::typeid,false);

Ma c'è qualcosa che non va. Ritengo che:muro: Object^ [c++] non sia object[] [c#]
Qualcuno può suggerirmi la "traduzione corretta?:stordita:
Grazie
ADL

||ElChE||88
20-02-2009, 23:38
Object^[]?

Suppongo che ^ sia un nuovo modo per dire __gc (non tocco MC++ da anni).

dileoa
21-02-2009, 20:12
Ho sempre utilizzato, fino ad ora, C++ Builder della fu Borland. Non ricordo di aver mai trovato ^ utilizzato in questo modo.
ADL

||ElChE||88
21-02-2009, 20:16
Ho sempre utilizzato, fino ad ora, C++ Builder della fu Borland. Non ricordo di aver mai trovato ^ utilizzato in questo modo.
ADL
Il Borland C++ è C++ "standard", quello sopra è C++ con le estensioni managed della Microsoft.

dileoa
21-02-2009, 20:37
Ho provato "Object^[]" ma non funziona.
ADL

dileoa
21-02-2009, 20:43
Già. Purtroppo la fu Borland, dopo aver consentito l'utilizzo dei suoi prodotti gratis per molti anni, attualmente non rende disponibile per i suoi IDE una versione gratuita.
Per un hobbista come me, comprare l'ambiente di sviuppo non è conveniente. Ho provato dev c++ ma non mi trovo a mio agio.
ADL

dileoa
22-02-2009, 15:27
:help:
Sto cercando di convertire alcune parti di un programma visual c# in visual c++ per la visualizzazione di una AboutBox (la finestra "informazioni su..."). Mi sono arenato sulla seguente riga di codice [c#], che dovrebbe consentire l'accesso alle proprietà del programma del file AssemblyInfo:

object[] attributes=Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute),false);

Provando e riprovando, penso di aver trovato il codice in c++ parzialmente corrispondente:

Object^ attributes=Assembly::GetExecutingAssembly()->GetCustomAttributes(AssemblyTitleAttribute::typeid,false);

Ma c'è qualcosa che non va. Ritengo che:muro: Object^ [c++] non sia object[] [c#]
Qualcuno può suggerirmi la "traduzione corretta?:stordita:
Grazie
ADL

Problema risolto.
Per chi può interessare, la versione c++ della riga di codice c# è:

array <Object^>^ attributes=Assembly::GetExecutingAssembly()->GetCustomAttributes(AssemblyTitleAttribute::typeid,false);

Utilizzando la riga di codice si può accedere alle proprietà elencate in AssemblyInfo.cpp e quindi creare una AboutBox standard, indipendente dall'applicazione a cui è destinata e pertanto riusabile.
Grazie per l'interesse
ADL