Bennu Game Development

Foros en Español => Extensiones => Mensaje iniciado por: Arcontus en Mayo 01, 2018, 11:39:13 pm

Título: Acceder a portapapeles 2 (Windows)
Publicado por: Arcontus en Mayo 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 :)
Título: Re:Acceder a portapapeles 2 (Windows)
Publicado por: SplinterGU en Mayo 02, 2018, 02:02:51 am
gracias por compartir! felicitaciones por tu primera dll!
Título: Re:Acceder a portapapeles 2 (Windows)
Publicado por: JaViS en Mayo 02, 2018, 01:20:33 pm
muy bueno!! gracias!!
Título: Re:Acceder a portapapeles 2 (Windows)
Publicado por: panreyes en Mayo 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.
Título: Re:Acceder a portapapeles 2 (Windows)
Publicado por: Drumpi en Mayo 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).
Título: Re:Acceder a portapapeles 2 (Windows)
Publicado por: Arcontus en Mayo 08, 2018, 03:53:57 pm
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?
Título: Re:Acceder a portapapeles 2 (Windows)
Publicado por: panreyes en Mayo 09, 2018, 08:31:31 am
Si pones write y read (en vez de gets y puts) te doy 100 de karma xD
Título: Re:Acceder a portapapeles 2 (Windows)
Publicado por: JaViS en Mayo 09, 2018, 02:12:33 pm
habria que subir el codigo fuente a un repo publico asi la gente puede colaborar
Título: Re:Acceder a portapapeles 2 (Windows)
Publicado por: Arcontus en Mayo 09, 2018, 05:43:20 pm
Si pones write y read (en vez de gets y puts) te doy 100 de karma xD
Ves preparando el botón, jajajaja
Título: Re:Acceder a portapapeles 2 (Windows)
Publicado por: Arcontus en Mayo 09, 2018, 05:47:23 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?

Título: Re:Acceder a portapapeles 2 (Windows)
Publicado por: Arcontus en Mayo 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.
Título: Re:Acceder a portapapeles 2 (Windows)
Publicado por: Drumpi en Mayo 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
Título: Re:Acceder a portapapeles 2 (Windows)
Publicado por: Arcontus en Enero 16, 2019, 09:52:32 am
Este es el repositorio de la DLL:
https://github.com/Arcontus/libmod_clipboard

Título: Re:Acceder a portapapeles 2 (Windows)
Publicado por: CMX en Enero 16, 2019, 12:02:40 pm
No sabes el tiempo que andaba detrás de esto. Muchas gracias.
Karma
Título: Re:Acceder a portapapeles 2 (Windows)
Publicado por: Arcontus en Enero 16, 2019, 12:10:16 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ó.
Título: Re:Acceder a portapapeles 2 (Windows)
Publicado por: CMX en Enero 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.