PDA

Visualizza la versione completa : [visual c++]error C2064 con funzione srand(time(NULL))


Rising1
24-03-2012, 19:22
come si capisce dal titolo vorrei generare dei numeri pseudorandom con la semplice funzione che ho sempre usato su, ad esempio, codeblock,


srand (time(NULL));
....
....
valoreiniziale=rand() %20 + 1;


l'errore, in corrispondenza di srand è il seguente


error C2064: il termine non restituisce una funzione che accetta 1 argomenti

non c'è motivo... o forse si... :popcorn:
si tratta di un applicazione GUI in microsoft visual c++ 2010

oregon
24-03-2012, 20:06
Sicuro che l'errore si riferisca a quella linea?

Controlla meglio e mostra tutto il codice che manca ...

Rising1
25-03-2012, 18:03
#include <stdio.h>
#include <stdlib.h>
#include <time.h>


private: System::Void start_Click(System::Object^ sender, System::EventArgs^ e) {
timer1->Enabled="True";
tempo=60;
-> srand( time(null) );
valoreiniziale=rand() % 20 +1;
condizione=rand() % 20 +1;
sum1->Text=Convert::ToString(valoreiniziale);
sum2->Text=Convert::ToString(condizione);
points=0;
punti->Text=Convert::ToString(points);
resultvar=0;
result->ReadOnly=!"True";
}
interi sono: tempo, valoreiniziale, condizione, resultvar, points
punti, sum1 e sum2 sono label
timer1 è... beh... un timer
result è una textbox

l'errore è su srand

oregon
25-03-2012, 18:07
Ah ... ma tu utilizzi il framework .NET per il tuo progetto (cioè usi un progetto CLR e non Win32 ... bisognava che lo dicessi subito).

In questo caso dovresti usare le classi apposite del .NET e per quello che ti serve la classe

Random
http://msdn.microsoft.com/it-it/library/system.random.aspx

Non utilizzare funzionalità di librerie classiche del C se utilizzi il framework ...

Rising1
25-03-2012, 18:58
Originariamente inviato da oregon
Ah ... ma tu utilizzi il framework .NET per il tuo progetto (cioè usi un progetto CLR e non Win32 ... bisognava che lo dicessi subito).

In questo caso dovresti usare le classi apposite del .NET e per quello che ti serve la classe

Random
http://msdn.microsoft.com/it-it/library/system.random.aspx

Non utilizzare funzionalità di librerie classiche del C se utilizzi il framework ...

aspetta, io su visual c++ faccio nuovo progetto->Applicazione Windows Form
non applicazione console clr

oregon
25-03-2012, 21:02
Originariamente inviato da Rising1
aspetta, io su visual c++ faccio nuovo progetto->Applicazione Windows Form
non applicazione console clr

Anche se non c'è nel nome del tipo, è comunque tra i progetti di tipo CLR (seleziona CLR e lo vedrai) e quindi usi il Framework (anche se non te ne rendi conto).

Il che vuol dire, tra l'altro, che il tuo codice non potrà essere ricompilato per lavorare su Linux, utilizzando il framework (a meno di non utilizzare Mono ma è tutta un'altra storia).

Se vuoi del codice nativo, devi usare un progetto Win32 (ma la gestione delle finestre sarà molto più complesso).

In ogni caso, utilizza le classi del Framework se usi un progetto CLR.

Rising1
27-03-2012, 21:30
Originariamente inviato da oregon
Anche se non c'è nel nome del tipo, è comunque tra i progetti di tipo CLR (seleziona CLR e lo vedrai) e quindi usi il Framework (anche se non te ne rendi conto).

Il che vuol dire, tra l'altro, che il tuo codice non potrà essere ricompilato per lavorare su Linux, utilizzando il framework (a meno di non utilizzare Mono ma è tutta un'altra storia).

Se vuoi del codice nativo, devi usare un progetto Win32 (ma la gestione delle finestre sarà molto più complesso).

In ogni caso, utilizza le classi del Framework se usi un progetto CLR.
ah ok grazie per il suggerimento

Il che vuol dire, tra l'altro, che il tuo codice non potrà essere ricompilato per lavorare su Linux
http://media.tumblr.com/tumblr_lioaviI0331qe9jqx.jpg :mame:

oregon
27-03-2012, 21:31
Originariamente inviato da Rising1
ah ok grazie per il suggerimento

http://media.tumblr.com/tumblr_lioaviI0331qe9jqx.jpg :mame:

Non capisco le risate ma mi adeguo ...

Rising1
27-03-2012, 21:41
no, non è risata, è una di quelle stupide faccine dei fumetti di facebook, dovrebbe voler dire "i don't give a fu.."

lavoro solo su windows e non penso un giorno ci sarà qualcuno a cui verrà in mente di riprendere il mio programma etc etc...

comunque è un'informazione interessante che mi potrebbe servire magari un giorno

oregon
28-03-2012, 09:36
Ma il fatto è che, anche su Windows, non potrai usare altri compilatori C/C++ ...

A me, personalmente, non piace lo sviluppo C++.NET ma è solo una mia opinione ...

Loading