¡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 :)
gracias por compartir! felicitaciones por tu primera dll!
muy bueno!! gracias!!
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.
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).
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?
Si pones write y read (en vez de gets y puts) te doy 100 de karma xD
habria que subir el codigo fuente a un repo publico asi la gente puede colaborar
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
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?
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.
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
Este es el repositorio de la DLL:
https://github.com/Arcontus/libmod_clipboard
No sabes el tiempo que andaba detrás de esto. Muchas gracias.
Karma
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ó.
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.