PDA

Visualizza la versione completa : [C++] Errore di conversione da tipo non gestito a tipo gestito con label


simone.marchese
28-01-2009, 12:47
Ciao a tt.

Ho bisogno di trovare l'errore in questa funzione !!
Altrimenti mi saprete dare qualche consiglio su come chiamare una funzione in una label??

In teoria ho 2 file: pippo.cpp e pippo.h

pippo.h una finestra con una label e un bottone
in pippo.cpp voglio creare una funzione che on click del bottone mi cambi la label?

La funzione la seguente:

private: System::Void Play_Click(System::Object^ sender, System::EventArgs^ e)
{
int tempoTrascorso;
char finalTempo[10];
clock_t start,stop;
start = clock();
stop = clock();
tempoTrascorso = (int)(stop-start)/CLOCKS_PER_SEC;
itoa(tempoTrascorso,finalTempo,10);
this->IDC_TIME->Text = finalTempo;
//this->IDC_TIME->Text = L"00:00:01";
}

mentre l'errore dato dal compilatore il seguente:

contatore.cpp
1>c:\users\simone marchese\documents\visual studio 2008\projects\contatore\contatore\Form1.h(222) : warning C4996: 'itoa': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _itoa. See online help for details.
1> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdlib.h(862): vedere la dichiarazione di 'itoa'
1>c:\users\simone marchese\documents\visual studio 2008\projects\contatore\contatore\Form1.h(223) : error C2664: 'void System::Windows::Forms::Control::Text::set(System: :String ^)': impossibile convertire il parametro 1 da 'char [10]' a 'System::String ^'
1> Motivo: impossibile convertire da 'char *' a 'System::String ^'
1> Nessun operatore di conversione definita dall'utente oppure
1> Impossibile convertire un tipo non gestito in un tipo gestito
1>Il log di compilazione stato salvato in 'file://c:\Users\Simone Marchese\Documents\Visual Studio 2008\Projects\contatore\contatore\Debug\BuildLog.h tm'
1>contatore - 1 errore/i, 1 avviso/i

Grazie per la pazienza!!!.

Stoicenko
28-01-2009, 12:50
prova con


this->IDC_TIME->Text = new String(finalTempo);

simone.marchese
28-01-2009, 12:57
No mi dispiace mi dice :

1>c:\users\simone marchese\documents\visual studio 2008\projects\contatore\contatore\Form1.h(226) : error C2750: 'System::String': impossibile utilizzare 'new' per il tipo di riferimento. Utilizzare 'gcnew'

Stoicenko
28-01-2009, 12:59
usa gcnew al posto di new.. un po' di intraprendenza per eh?

shodan
28-01-2009, 13:00
Per il warning usa la _itoa come suggerito.
L'errore che stai cercando di assegnare ad una stringa managed ( dot.net ) una stringa C che sono incompatibili.

http://blogs.msdn.com/slippman/archive/2004/06/02/147090.aspx

Nelle note di commento si trova anche il tuo caso.

LeleFT
28-01-2009, 13:56
Un link utile da andare a leggere subito: Regolamento (http://forum.html.it/forum/showthread.php?s=&threadid=973887).

Soprattutto il punto in cui si parla dei titoli delle discussioni...


Ciao. :ciauz:

Loading