DialogBoxParam
-
Ich möchte in den Parameter LParam 2 Strings verschicken.
z.B MAKELPARAM(&string1[0],&string2[0])
das funktioniertAber beim Abfragen:
strcpy(st1,(char*)HIWORD(lParam));
strcpy(st2,(char*)LOWORD(lParam));hier knall es, warum??????
-
Was ist string1 und string2 und leben diese Objekte genug lange?
Und noch viel essentieller... warum denkst Du das ein LPARAM zwei char* aufnehmen kann? Das geht nicht.
-
Wenn die Zeiger der Strings 16bit statt 32bit lang sind müsste das doch gehen?
16bit im LOWORD und 16bit im HIWORD.
Die Objekte leben solange wie der Dialog lebt.
aber wie kriege ich die von 32bit auf 16bit?Ich weiß, dass ist Spielerei geht auch anders nur dann muß ich die Werte dann in eine Klasse oder mindestens in eine Struktur packen.
-
Und die Zeiger sind tatsächlich 16 Bit gross?
Und LPARAM ist tatsächlich 32 Bit gross?Probiers doch mal mit sizeof aus...
Edit: Und nochmals... was sind string1 und string2 für Typen?
Falls es std::string's sind dein Vorgehen nicht Standardkonform / Portabel. Und obendrein noch Problematisch wegem der fehlenden Null Terminierung. Benutze doch std::string::c_str().
-
string1 ist char string1[10]
string2 ist char string2[10]deklariert.
Beide Strings sind asccii 0 terminiert.
-
Und, die Grössen der Pointer etc. getestet?
-
Man kann keine 2 Zeiger in einem LPARAM verpacken. Ein LPARAM ist exakt so groß wie ein Zeiger.
-
Martin Richter schrieb:
Man kann keine 2 Zeiger in einem LPARAM verpacken. Ein LPARAM ist exakt so groß wie ein Zeiger.
Jetzt ist der Lerneffekt flöte
