Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: PabloPbl en 10 Diciembre 2015, 15:56 pm



Título: Ayuda no me copia el string entero
Publicado por: PabloPbl en 10 Diciembre 2015, 15:56 pm
Estoy trabajando con el portapapeles en c++ y estuve viendo ejemplos en la web y he implementado el metodo.

Pero resulta que cuando uso este método para copiar texto al portapapeles, me lo copia, pero cuando hago la prueba, me queda faltando el ultimo carácter del string que le pase el metodo.

Si yo copio:
Codigo --> me copia --> Codig

Este el método que utilizo en mi programa:

Código
  1. void toClipboard(const std::string &s){
  2. OpenClipboard(0);
  3. EmptyClipboard();
  4. HGLOBAL hg=GlobalAlloc(GMEM_MOVEABLE,s.size());
  5. if (!hg){
  6. CloseClipboard();
  7. return;
  8. }
  9. memcpy(GlobalLock(hg),s.c_str(),s.size());
  10. GlobalUnlock(hg);
  11. SetClipboardData(CF_TEXT,hg);
  12. CloseClipboard();
  13. GlobalFree(hg);
  14. }
  15.  

Gracias de antemano.


Título: Re: Ayuda no me copia el string entero
Publicado por: ivancea96 en 10 Diciembre 2015, 16:26 pm
Código
  1. GlobalAlloc(GMEM_MOVEABLE,s.size());

Coloca s.size()+1. Uno más que el tamaño de la string.
No sé si tiene que evr con caracteres nulos, o si es otra peculiaridad, así que no te puedo dar la razón por la cual debiera funcionar así :S


Título: Re: Ayuda no me copia el string entero
Publicado por: PabloPbl en 11 Diciembre 2015, 04:39 am
Muchas gracias por la ayuda, funciona perfecto  ;D

Salu2.