Bennu Game Development

Foros en Español => Extensiones => Topic started by: Arcontus on May 01, 2018, 11:39:13 PM

Title: Acceder a portapapeles 2 (Windows)
Post by: Arcontus on May 01, 2018, 11:39:13 PM
¡Hola chicos!
He aprendido a hacer mi primera DLL y quiero compartirla con vosotros. Se trata de una dll para acceder al contenido del portapapeles y copiarlo sobre una string o bien a la inversa, dado una string copiarla al portapapeles.

La librería consta de 2 funciones:

-- str = CLIPBOARD_READ(); --> Devuelve el contenido del portapapeles sobre una string o mensaje de error en el caso de que no tenga contenido o no sea valido (ej: un fichero).
-- CLIPBOARD_WRITE(str);      --> Copia el contenido de una string sobre el portapapeles.

Importante, para el correcto visualizado de los carácteres no standard del español es necesario utilizar una fuente con codificación CP850. La librería se encarga de hacer la conversión "on the fly" de los carácteres no standard del español (acentos, ñ, ¡¿).

Adjunto .dll y un programa de ejemplo para su uso dentro del fichero zip.
Espero que les sea de utilidad,
Un saludo!
PD: DLL con los nombres de función solicitados por la audiencia :)
Title: Re:Acceder a portapapeles 2 (Windows)
Post by: SplinterGU on May 02, 2018, 02:02:51 AM
gracias por compartir! felicitaciones por tu primera dll!
Title: Re:Acceder a portapapeles 2 (Windows)
Post by: JaViS on May 02, 2018, 01:20:33 PM
muy bueno!! gracias!!
Title: Re:Acceder a portapapeles 2 (Windows)
Post by: panreyes on May 02, 2018, 01:25:54 PM
Bien hecho, enhorabuena! :)

Por cierto, lo mejoraría renombrando las funciones a:
CLIPBOARD_WRITE
CLIPBOARD_READ

Como en los DivLike todas las funciones están a la misma altura/orden, suele ser cómodo tener la "razón" de las funciones delante y la acción detrás, aparte de que READ es algo más común de ver.
Title: Re:Acceder a portapapeles 2 (Windows)
Post by: Drumpi on May 07, 2018, 12:45:10 AM
Yo iría más allá:
CLIPBOARD_GETS
CLIPBOARD_PUTS
Porque lo que lee, al final, son líneas de texto. Yo me guardaría _WRITE y _READ para cuando podamos leer algo más que cadenas ASCII (como una imágen, por ejemplo :P).
Title: Re:Acceder a portapapeles 2 (Windows)
Post by: Arcontus on May 08, 2018, 03:53:57 PM
Quote from: Drumpi on May 07, 2018, 12:45:10 AM
Yo iría más allá:
CLIPBOARD_GETS
CLIPBOARD_PUTS
Porque lo que lee, al final, son líneas de texto. Yo me guardaría _WRITE y _READ para cuando podamos leer algo más que cadenas ASCII (como una imágen, por ejemplo :P ).
Hombre, por unos Karmas os implemento el cambio de nombres ;D
¿¿GETS Y PUTS o WRITE y READ?? ¿Que preferís?
Title: Re:Acceder a portapapeles 2 (Windows)
Post by: panreyes on May 09, 2018, 08:31:31 AM
Si pones write y read (en vez de gets y puts) te doy 100 de karma xD
Title: Re:Acceder a portapapeles 2 (Windows)
Post by: JaViS on May 09, 2018, 02:12:33 PM
habria que subir el codigo fuente a un repo publico asi la gente puede colaborar
Title: Re:Acceder a portapapeles 2 (Windows)
Post by: Arcontus on May 09, 2018, 05:43:20 PM
Quote from: panreyes on May 09, 2018, 08:31:31 AM
Si pones write y read (en vez de gets y puts) te doy 100 de karma xD
Ves preparando el botón, jajajaja
Title: Re:Acceder a portapapeles 2 (Windows)
Post by: Arcontus on May 09, 2018, 05:47:23 PM
Quote from: JaViS on May 09, 2018, 02:12:33 PM
habria que subir el codigo fuente a un repo publico asi la gente puede colaborar
Si, es verdad.

Si no lo he hecho aun es por falta de tiempo y por que realmente me ha costado más configurar el entorno para compilar las DLL que realizar el código de las funciónes xD, y como lo que realmente "necesitas" es la DLL compilada, pues por eso no lo he subido, pero lo haré ;) .  ¿Cuantos de vosotros (a parte de splinter) tienen un entorno para compilar DLL's?

Title: Re:Acceder a portapapeles 2 (Windows)
Post by: Arcontus on May 11, 2018, 08:05:52 AM
Ya está la DLL resubida con los nombres de las funciones cambiados.
Lo de subir el código a un repo GIT lo tengo en tareas pendientes..., estoy evaluando si añado alguna otra funcion a la librería antes de subirla al repo y darle un poco de chapa y pintura a lo que tengo codificado.
Title: Re:Acceder a portapapeles 2 (Windows)
Post by: Drumpi on May 11, 2018, 11:45:48 PM
Hacer DLLs es mi asignatura pendiente. Creo que una vez hice la DLL de ejemplo de Fénix con DEV-C++. Hoy tendría que usar Visual Studio o las herramientas de Linux, porque el MINGWloquesea lo tengo configurado en el sobremesa para compilar para GP2X (no sin gran esfuerzo) porque tengo pendiente recompilar alguna versión de Bennu más actualizada que la que hice en su día.

Pero sigo opinando que si solo lee y escribe lineas de texto, seamos constantes y hagamos como los ficheros. WRITE y READ se usa en Linux para leer y escribir "en general", para cualquier fichero (sea de texto, de imágen o un dispositivo) :D :D :D
Title: Re:Acceder a portapapeles 2 (Windows)
Post by: Arcontus on January 16, 2019, 09:52:32 AM
Este es el repositorio de la DLL:
https://github.com/Arcontus/libmod_clipboard

Title: Re:Acceder a portapapeles 2 (Windows)
Post by: CMX on January 16, 2019, 12:02:40 PM
No sabes el tiempo que andaba detrás de esto. Muchas gracias.
Karma
Title: Re:Acceder a portapapeles 2 (Windows)
Post by: Arcontus on January 16, 2019, 12:10:16 PM
Quote from: CMX on January 16, 2019, 12:02:40 PM
No sabes el tiempo que andaba detrás de esto. Muchas gracias.
Karma
Se agradece :)

Por cierto, sería interesante para el resto de usuarios que crearas un msg y explicaras tu experiencia con el error que te dió.
Title: Re:Acceder a portapapeles 2 (Windows)
Post by: CMX on January 19, 2019, 04:14:18 PM
A mí me daba error cuando compilaba la dll. El import no me cargaba la librería, me la cargaba si ponía el nombre del archivo, pero no me reconocía las funciones.
El fallo estaba en que estaba compilando con una versión antigua de Bennu. Descargue la última versión y va perfecto.
Por cierto, mil gracias por la atención que me prestó por privado Arcontus.