Zwischenablage im DOS-Mode
-
Versuch mal die Ausgabe von lpstr vor GlobalUnlock()/CloseClipboard() einzubauen. Da du dir den Inhalt ja nicht kopierst sondern nur einen Zeiger darauf vewaltest der (meiner Meinung nach) nach GlobalUnlock() nicht mehr für dich zugänglich ist -> Access Violation.
MfG SideWinder
-
Ahhhh!! Bingo, danke! Aber jetzt nochwas, das Programm funktioniert. ABER egal was in der Zwischenablage steht, er gibt mit cout nichts aus. Versteh ich da was falsch?
Vielen Dank für die Hilfe bis jetzt.
-
Ähm, hab gerade gemerkt, der if-Block wird garnicht ausgeführt. Aber wenn ich die Bedingung raus nehme, dann bricht er bei dem cout wieder ab
-
Ich hab die Idee übrigens hier her:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-31111-and-postdays-is-0-and-postorder-is-asc-and-start-is-20.htmlVielleicht kann damit ja jmd. was anfangen
-
Hmm auf den ersten Blick fällt mir auf, dass dort OpenClipboard() aufgerufen wird und bei dir nicht.
MfG SideWinder
-
Mhhh stimmt aber OpenClipboard() will ja einen Parameter haben, was übergeb ich ihm denn da? Das versteh ich gerade nicht so ganz
-
Übergib NULL, sollte ok sein. Aber CloseClipboard() nicht vergessen.
-
Danke danke danke, es funktioniert jetzt. Danke euch allen.
-
Hi,
bei mir wird bei folgendem Code immer nur eine Integeerzahl ausgegeben, obwohl einer langer Text in der Zwischenablage ist.LPTSTR lptstr; HGLOBAL hglb; if(OpenClipboard(NULL)) { hglb = GetClipboardData(CF_TEXT); if(hglb!=NULL) { lptstr = (LPTSTR)GlobalLock(hglb); cout << "clipb: " << lptstr << endl; GlobalUnlock(hglb); } CloseClipboard(); }
Was mache ich falsch?
danke im voraus
veio
-
Habe mal LPTSTR durch char* ersetzt und es geht.