Aidez moi

cs_supergrey Messages postés 475 Date d'inscription vendredi 27 juin 2003 Statut Membre Dernière intervention 20 septembre 2010 - 10 mars 2004 à 22:55
cs_totodude Messages postés 24 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 6 avril 2004 - 19 mars 2004 à 15:03
J'ai pris ce code sur msdn et j'arrive pas a le faire marcher ca me dit que GlobalUnlock ne peut pas convertir de 'void *' vers 'char *'

HWND hwnd=GetClipboardOwner();
HGLOBAL hglb;
LPSTR lpstr;
if (OpenClipboard(hwnd))
{
hglb = GetClipboardData(CF_TEXT);
lpstr = GlobalLock(hglb);

GlobalUnlock(hglb);
CloseClipboard();
}

Merci !

6 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 mars 2004 à 23:31
void* ou char*, c'est idem toujours un pointeur 32 bits, suffit de mettre un cast.
Tu es tetu, je te dis ou c'est dans Petzold, ben nenni.
On y croit pas.

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_supergrey Messages postés 475 Date d'inscription vendredi 27 juin 2003 Statut Membre Dernière intervention 20 septembre 2010
11 mars 2004 à 09:00
Petzold??? c'est quoi?
J'ai regardé tes source et j'arrive pas a les faire marcher.
'cast' c'est quoi?
0
Utilisateur anonyme
11 mars 2004 à 09:16
Un cast sert à convertir des types, dans ton cas tu dois utiliser (char*) :
GlobalUnlock((char*)hglb);

vbnul
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
11 mars 2004 à 09:30
Petzold, une reference de win32, auteur de cela:
http://brunews.free.fr/brunews/download/CP5.zip
http://brunews.free.fr/brunews/download/CP5Sources.zip

Je t'avais meme indique le chapitre 12.

ciao...
BruNews, Admin CS, MVP Visual C++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_supergrey Messages postés 475 Date d'inscription vendredi 27 juin 2003 Statut Membre Dernière intervention 20 septembre 2010
11 mars 2004 à 10:36
J'ai trouvé c'est bon. Ce que j'attendais c'était ca:

char buff[32768];

if(OpenClipboard(NULL))
{
strcpy(buff, (char*)GetClipboardData(CF_TEXT));
CloseClipboard();
}

je pense que ca pourra servir a d'autre.
0
cs_totodude Messages postés 24 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 6 avril 2004
19 mars 2004 à 15:03
Bonjour tout le monde,

j'essaie moi aussi d'utiliser le clipboard dans une application, mais je commence à desespéré.

je voudrais réaliser une application qui réalise une impression écran et découpe un tableau sur l'image ainsi enregistrée.

pour ca
1) je réalise mon impression écran

keybd_event(VK_SNAPSHOT,1,0,0);

2) j'ouvre mon clipboard

::OpenClipboard(NULL);

3) je récupère ce qu'il y a dedans
HBITMAP* hClip = (HBITMAP*)GetClipboardData(CF_BITMAP);

4) je découpe l'image
CImage cImage;
cImage.Attach(*hClip);
HDC hImage=NULL;
cImage.Draw(hImage, 100, 100, 100, 100);

5) je remet dans le clipboard
EmptyClipboard();
SetClipboardData(CF_BITMAP, hImage);

6) je referme
CloseClipboard();

mon prog ne marche pas, j'ai beau cherché pourquoi j'y arrive pas.
quelqu'un aurait une solution ou une suggestion pour m'aider ??? merci infiniment

Cheers ;)
tom
0
Rejoignez-nous