Ich habe gerade mit C++ angefangen. Nun wollte ich einen Timer machen, in den man die Zeit eingibt und der dann diese Zeit abwartet(Sleep) und danach den Warnton(\a) ausgibt.
1>a:\dokumente\c++\timer\timer.cpp(11) : error C2664: 'Sleep': Konvertierung des Parameters 1 von 'void (__cdecl *)(int)' in 'DWORD' nicht möglich
1> Es gibt keinen Kontext, in dem diese Konvertierung möglich ist
Bin natürlich auch für Anregungen am Code selber offen.
Du gibst immer den Funktionsnamen anstatt des Variablennamens als Argument an die Sleep-Funktion. Außerdem solltest du wo es möglich ist nur lokale Variablen benutzen, da globale Variablen böse sind.
Das Problem ist ganz einfach, dass du nicht den Namen der Variablen an Sleep übergist, sondern die Funktionen. Und deine Funktionen sind in dem Fall nunmal vom typen void (__cdecl*)(int), was der Compiler jedoch nicht implizit nach unsigned long (DWORD) casten kann.
Anregungen:
Globale Variablen vermeiden.
Globales using namespace vermeiden
Gebe deinen Variablen aussagekräftige Namen. n und t sagen dir absolut gar nichts.
Was ich cool finde:
Wie du den String auf mehrere Möglichkeiten mit dem Komma Operator prüfst. Sieht man nicht sehr häufig!
DANKE für eure Hilfe, ich habe die Funktion in Sleep durch die Variablen ersetzt.
Dazu habe ich noch einen Warnton eingebaut, welcher ertönt wenn Sleep(time) vorüber ist.
Habe auch eure anderen Verbesserungen mit eingebracht.
[Frage] DWORD zu CString 10/15/2011 - Flyff Private Server - 3 Replies Hey, hab da mal eine Frage undzwar würde ich gerne eine DWORD Variable (m_pFocusItem->dwLevel) in einen CString konvertieren, habe auch schon gegoogelt, verstehe das mit sprintf() allerdings nicht so richtig >.<
MFG Yakuzai.
Type convertierung / Funktionspointer to DWORD (Functionsaddr) 06/28/2011 - General Coding - 3 Replies Hey liebe Coder,
Ich habe ein kleines Umsetzungsproblem in einem meiner Programme.
Ich versuche die Addr einer Funktion in DWORD zu speichern.
class Beispiel
{
public:
void Funktion();