Zwischenablage
-
Das ist aber nun zum größten Teil WinAPI.
Was für Fehler waren das denn?
-
Fehler 1 error C2660: 'OpenClipboard': Funktion akzeptiert keine 0 Argumente c:\dokumente und einstellungen\simon\eigene dateien\visual studio 2008\projects\font-converter\font-converter\main.cpp 30
Fehler 2 error C2065: 'source': nichtdeklarierter Bezeichner c:\dokumente und einstellungen\simon\eigene dateien\visual studio 2008\projects\font-converter\font-converter\main.cpp 37
Fehler 3 error C2228: Links von ".GetLength" muss sich eine Klasse/Struktur/Union befinden. c:\dokumente und einstellungen\simon\eigene dateien\visual studio 2008\projects\font-converter\font-converter\main.cpp 37
Fehler 4 error C2065: 'source': nichtdeklarierter Bezeichner c:\dokumente und einstellungen\simon\eigene dateien\visual studio 2008\projects\font-converter\font-converter\main.cpp 39
Fehler 5 error C2664: 'SetClipboardData': Konvertierung des Parameters 1 von 'std::string' in 'UINT' nicht möglich c:\dokumente und einstellungen\simon\eigene dateien\visual studio 2008\projects\font-converter\font-converter\main.cpp 42Oha !
-
und du hast ne ganze stunde mit suchen verbracht?
zu openclipboard:
http://msdn.microsoft.com/en-us/library/ms649048(VS.85).aspxÜberhaupt ist deine komplette Funktion doch eh nur copy&paste - oder willst du mir sagen, dass es nen grund hat, dass du BOOL und nicht bool nimmst(und dann noch behauptest, dass es nichts mit winapi zu tun hat), CString und nicht std::string (oder std::wstring) und in der fkt. das ganze umwandelst?
Vll solltest du dich erst mal mit den Grundlagen von C++ beschäftigen und dann wird dir auch klar, was die Fehler bedeuten und was du anders machen solltest...
bb
-
Dieser Thread wurde von Moderator/in Phoemuex aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
FedoX schrieb:
Nach 1ner Stunde suchen per google und in der MSDN frage ich nun hier : Wie kann ich Text in die Zwischenablage schreiben und auch wieder herrausnehmen bzw. löschen ? In der MSDN habe ich nur begrenzt etwas gefunden (GetClipboardData) aber das hat bei mir nicht funktioniert.
MfG FedoX
Hallo:
lesen geht so:
#include <windows.h> #include <iostream> int main(){ if(OpenClipboard(NULL)){ HANDLE cMem = GetClipboardData(CF_TEXT); //cMem ist ein Handle auf Globalmemory char *buffer = NULL; buffer = (char*)GlobalLock(cMem); //Globalmemory entsichern und buffer zuweisen GlobalUnlock(cMem); //wieder sichern. CloseClipboard(); std::cout << buffer << std::endl; } return 0; }und schreiben, genau umgekehrt: Globalmemory allokieren, füllen und via SetClipBoardData übergeben. Auch hier mit Pointern von GlobalLock() und GlobalUnlock() arbeiten.
Ach ja: Natürlich zuvor leeren mit EmptyClipboard und das geleerte natürlich merken, wenn man wiederherstellen muss, aber das dürfte NULL Probl. sein - oder?
-
Ja Danke ! Das erste Beispiel klappt perfekt ! nur beim 2ten haperts.Ich komme mit der MSDN einfach ncoh nciht zurecht.Das ist da alles so kompliziert.Nach diesem Programm widme ich mich wieder den Grundlagen aber ich will das Proggi jetzt endlich fertig machen ! Also ich benötige nur noch die Clipboard schreiben Funktion ! Mein Ansatz :
if(OpenClipboard(NULL)){ EmptyClipboard(); HANDLE cMem = SetClipboardData(CF_TEXT); //cMem ist ein Handle auf Globalmemory char *buffer = NULL; buffer = (char*)GlobalLock(cMem); //Globalmemory entsichern und buffer zuweisen GlobalUnlock(cMem); //wieder sichern. CloseClipboard();Toll! Ein Buchstaben verändert.Och mann des ist echt verwirrend alles.Bitte Bitte helft mir.
-
Hallo,
nein nein. Du musst EmptyClipboard aufrufen, dann GlobalMemory erzeugen, mit bestimmten Attributen. Dann diesen Memory füllen und mit Setclipboarddata übergeben. Poste Dir morgen gleich wie es geht, heute habe ich leider keine Zeit mehr.
Im Klartext: Du musst für die Clipboard nur ein bestimmtes Stück Shared-Memory bereitstellen. In diesem stehen Deine Daten.
Die MSDN ist nicht schwierig. Es verlangt viel Grundlagenwissen ab, um sie lesen zu können, das stimmt. Via Windows will die MSDN Wissen über Windows vermitteln - also sich selbst. Und das ist nicht einfach, weil man Windows kennen sollte.

-
LOL weiß nicht mal wie man Speicher alloziert aber muss im Clipboard rumpfuschen. Lässt du dein 3 monate altes Kind auch autofahren bevor es gehen kann?!
-
xDD der ist gut ! Ja OK ihr habt mich überzeugt ! Ich lerne weiter die Grundlagen , arbeite meine 3 Bücher durch , lese noch ein paar online tutorials und danach versuche ich mich an die Api !
@CStern
Das wär echt nett von dir ! Vielen Dank für deine Mühe !
-
Rossi Rosshirt schrieb:
LOL weiß nicht mal wie man Speicher alloziert aber muss im Clipboard rumpfuschen. Lässt du dein 3 monate altes Kind auch autofahren bevor es gehen kann?!
Albert Einstein sagte:
"Zwei Einsichten sind Unendlich: Die menschliche Dummheit und das Universum.
Aber, bei Ersterem bin ich mir sicher!"@Fedox, lasse dich nicht beirren. Learning by doing ist immer noch das Beste.
Vor allem dann, wenn man sich immer schwerere Hürden selbst setzt und diese erreicht (nicht alles auf einmal
).
ich habe dich glatt vergessen, weil viel um die Ohren.Morgen (*Knoten in Taschentuch mach*) denke ich daran und poste

-
hmm jaa... Kannst du den source noch posten ? Das ist mir sehr wichtig ! Bitte !