Aqui esta la libreria dll para generar QR Code

Acerca de los "Comprobantes Fiscales en Papel" que son aquellos que llevan un Codigo de barras proporcionado por el SAT. Tambien se discute sobre el OTRO Codigo de barras que llevan los nuevos Comprobantes por Internet (CFDI)
[[ FORO CERRADO DEBIDO A QUE YA LA INFORMACION YA NO ES VIGENTE ]]
smendoza
Mensajes: 115
Registrado: Jue Jul 22, 2010 10:37 am

Re: Aqui esta la libreria dll para generar QR Code

Mensajepor smendoza » Mar Oct 26, 2010 10:07 am

Gracias dado, ahorita reviso eso de las cadenas. Acabo de terminar la implementacion de la otra funcion FullQRCode (despues de una buena dosis de googlear, curiosear y cafeína :shock: ), reviso eso de las cadenas y habro un nuevo post con la explicacion y el proyecto completo.

Saludos!

smendoza
Mensajes: 115
Registrado: Jue Jul 22, 2010 10:37 am

Re: Aqui esta la libreria dll para generar QR Code

Mensajepor smendoza » Mar Oct 26, 2010 11:24 am

Dado

Estuve buscando lo que mencionas sobre convertir una null-terminated string a VB, pero no encontre nada que "funcionara", lo que si econtre en varios lugares es que no se debe usar variables tipo "string" en una dll de Delphi.

An aside: you will need to master pchar type strings to send things to or from DLLs. You can receive things from DLLs into a normal Delphi string, as we have just done, but otherwise: it is pchar time. They aren't a big hassle, just a distraction to get past



(The pchar type is similar to the string type. You can't use string type variables for passing things to and from DLLs. If you do, you may get an "access violation" message when you run the program.)


Se tiene que usar Pchar en lugar de cualquier string :?

y de hecho al querer hacer algo similar a esto

Código: Seleccionar todo


Private Declare Function QRCodeLibVer Lib "C:\QRCodeLib.dll" () As String


MuestraMensaje ( "La version es : " + QRCodeLibVer);



me marca error y se cierra todo :o

fuente: http://sheepdogguides.com/dt3k.htm

Comenta :(

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: Aqui esta la libreria dll para generar QR Code

Mensajepor Dado » Mar Oct 26, 2010 1:12 pm

Para ser honesto, si vi algo de eso y por eso use "ShortString" (en Delphi este "ShortString" es de maximo 255 caracteres y normalmente nadie lo usa), tambien vi que deberia usar PChar, deja le muevo un poco por aca y te aviso si encuentro algo.
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

smendoza
Mensajes: 115
Registrado: Jue Jul 22, 2010 10:37 am

Re: Aqui esta la libreria dll para generar QR Code

Mensajepor smendoza » Mar Oct 26, 2010 1:32 pm

dado escribió:Para ser honesto, si vi algo de eso y por eso use "ShortString" (en Delphi este "ShortString" es de maximo 255 caracteres y normalmente nadie lo usa), tambien vi que deberia usar PChar, deja le muevo un poco por aca y te aviso si encuentro algo.


Ok, porque de lo contrario, se genera mal el QR. De hecho con la misma funcion que tengo, si lo generas dos veces sale diferente una de la otra por eso de las 'strings'

condor0086
Mensajes: 425
Registrado: Jue Ago 05, 2010 4:11 pm

Re: Aqui esta la libreria dll para generar QR Code

Mensajepor condor0086 » Mar Oct 26, 2010 3:16 pm

"Important note about DLL memory management: ShareMem must be the first unit in your library's USES clause AND your project's (select Project-View Source) USES clause if your DLL exports any procedures or functions that pass strings as parameters or function results. This applies to all strings passed to and from your DLL--even those that are nested in records and classes. ShareMem is the interface unit to the BORLNDMM.DLL shared memory manager, which must be deployed along with your DLL. To avoid using BORLNDMM.DLL, pass string information using PChar or ShortString parameters"

Saludos

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: Aqui esta la libreria dll para generar QR Code

Mensajepor Dado » Mié Oct 27, 2010 12:13 pm

Ahora si, listo para Visual Basic.

A partir del trabajo publicado por smendoza me di a la tarea de modificar y ampliar la interface para Visual Basic

Ya esta bien probado y funcionan bien.

Por favor, VUELVAN a descargar las rutinas del post #1, lo actualice con las rutinas de VB

Nuevamente, gracias smendoza.....
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

smendoza
Mensajes: 115
Registrado: Jue Jul 22, 2010 10:37 am

Re: Aqui esta la libreria dll para generar QR Code

Mensajepor smendoza » Mié Oct 27, 2010 2:06 pm

dado escribió:Ahora si, listo para Visual Basic.

A partir del trabajo publicado por smendoza me di a la tarea de modificar y ampliar la interface para Visual Basic

Ya esta bien probado y funcionan bien.

Por favor, VUELVAN a descargar las rutinas del post #1, lo actualice con las rutinas de VB

Nuevamente, gracias smendoza.....



Andale!! ahora si jala :D , la funcion que me marcaba error en Vb.net ya funciona tambien :D . Estoy por terminar el proyecto en Vb.net, solo que tengo problemas para convertir los colores, en .net se usan colores del tipo System.Drawing.Color y en VB6 del tipo Long, ahi es donde estoy batallando, pero ahorita algo debe de salir :geek:

De nada dado, espero dejarla lista para .NET tambien

de hecho casi todo el codigo se puede reutilizar para vb.net, pero pretendo pasarlo utilizando el metodo DLLImport, y no "declare sub x lib ("libreria.dll")" : , que es la que viene en el framework del .net

Saludos!

smendoza
Mensajes: 115
Registrado: Jue Jul 22, 2010 10:37 am

Re: Aqui esta la libreria dll para generar QR Code

Mensajepor smendoza » Mié Oct 27, 2010 7:29 pm

Listo para VB.Net :D

Adjunto el proyecto, esta hecho en VB Express 2010 con .NET framework 3.5 :geek:

En .net se utiliza el metodo DLLImport, tal como habia mencionado antes, lo unico "batalloso" fue lo de los colores, ya que para VB6 estan definidos de tipo long (me imagino que para Delphi tambien) y en .NET son del tipo System.Drawing.Color.

Al final defini la funcion FullQRCode de la siguiente manera

Código: Seleccionar todo

<DllImport("QRCodeLib.dll", Entrypoint:="FullQRCode")> Private Shared Sub FullQRCode(ByVal autoConfigurate As Boolean, ByVal AutoFit As Boolean, ByVal backColor As System.Int32, ByVal barColor As System.Int32, ByVal Texto As String, ByVal correctionLevel As TQRCodeECLevel, ByVal encoding As TQRCodeEncoding, ByVal marginpixels As Integer, ByVal moduleWidth As Integer,ByVal Height As Integer, ByVal Width As Integer, ByVal FileName As String)
    End Sub


Se declararon las variables de color como tipo int32, y al llamar la funcion se convirtio el tipo System.Drawing.Color a int32 mediante el metodo ColorTranslator.ToOle( ) tal como se muestra:

Código: Seleccionar todo

   FullQRCode(True, False, ColorTranslator.ToOle(Color.Yellow), ColorTranslator.ToOle(Color.Red), "hola mundo", TQRCodeECLevel.LEVEL_M, TQRCodeEncoding.ceAUTO, 5, 5, 150, 200, "AlGusto.bmp")


Espero a alguien le sirva, saludos!
Adjuntos
QRCodevb.net.zip
Projecto VB.Net Utilizando libreria QRCodelib.dll
(785.21 KiB) Descargado 939 veces

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: Aqui esta la libreria dll para generar QR Code

Mensajepor Dado » Mié Oct 27, 2010 9:38 pm

@smendoza

Vaya, ahora si te la volaste, tengo entendido que esto que escribiste para VB.NET ya sirve de base para toda la plataforma .NET o no?
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

smendoza
Mensajes: 115
Registrado: Jue Jul 22, 2010 10:37 am

Re: Aqui esta la libreria dll para generar QR Code

Mensajepor smendoza » Mié Oct 27, 2010 10:56 pm

dado escribió:@smendoza

Vaya, ahora si te la volaste, tengo entendido que esto que escribiste para VB.NET ya sirve de base para toda la plataforma .NET o no?


Sip :D , solo cambian la manera de declarar las funciones de acuerdo al lenguaje en .NET que esten usando, digase C++ .NET, C#.NET, etc....hasta Delphi .NET :D , pero los metodos deben de ser los mismos, DLLImport, System.Drawing.Colors, etc. 8-)


Volver a “CF Autoimpresos en Papel y Codigo de barras bidimensional (QR Code)”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 9 invitados