utilizar dll sin necesidad de registrarla en windows

669 views
Skip to first unread message

Jorge

unread,
Jun 14, 2022, 11:30:01 AM6/14/22
to publicesvfoxpro
Hola a todos :

Necesitaria saber si se puede utilizar una dll en visual fox ( por caso ifox.dll ) sin necesidad de registrarla en windows mediante el comando Regsvr32 . Desde ya muchas gracias

Zarlu

unread,
Jun 14, 2022, 12:52:51 PM6/14/22
to Comunidad de Visual Foxpro en Español
Buenos días ciclon!

Te sugiero pruebes desregistrando la DLL

Regsvr32 /u nombredll.dll
Reiniciar la pc
y copiar la dll al directorio del ejecutable

Algunas veces con ubicarlas en el directorio del proyecto y sin registrar es suficiente

Así podrías saber si requiere registrarse

Suerte
zarlu
Chetumal, Quintana Roo, México

HernanCano

unread,
Jun 14, 2022, 4:48:06 PM6/14/22
to Comunidad de Visual Foxpro en Español
Hola.

Con respecto a registrar DLLs en Windows, te cuento:

1. Normalmente las DLLs deben registrarse con el comando REGSVR32 de la línea de comandos de Windows, como por ejm XZIP.DLL de Xstandard.
Las DLLs pueden usarse en VFP, y también en otros lenguajes de programación.

Recordemos que para ejecutar este comando, debemos "abrir" una ventana del símbolo del sistema con lo que conocemos como "permisos de administrador" o también "con elevación de permisos de administrador" ("Ejecutar como administrador").


8 de junio de 2007
Registrar OCX / DLL en Windows Vista
https://comunidadvfp.blogspot.com/2007/06/registrar-ocx-dll-en-windows-vista.html


19 de diciembre de 2007
Cómo saber si un ActiveX ya fué registrado
https://comunidadvfp.blogspot.com/2007/12/como-saber-si-un-activex-ya-fue.html

----------------------------------------------------------------------------------------
2. Cuando una DLL se puede registrar con REGSVR32, entonces muy probablemente se puede registrar desde dentro de VFP con VB6STKIT.DLL, más o menos así:

if RegXZip()
   MessageBox('Registrado Ok')
else
   MessageBox('No se registró')
endif

function RegXZip
declare integer DLLSelfRegister in [Vb6stkit.DLL] string lpDllName
return ( DLLSelfRegister([xZip.dll]) = 0 )

**

Recordemos además que para poder ejecurar esta acción, también se debe haber ejecutado nuestra aplicación (sólo la primera vez) con "permisos de administrador".


16 de agosto de 2002
Registrar y desregistrar un archivo OCX o DLL
https://comunidadvfp.blogspot.com/2002/08/registrar-y-desregistrar-un-archivo-ocx.html

----------------------------------------------------------------------------------------
3. Existen algunas DLLs que --para poder ser usadas en VFP-- necesitan ser registradas con RegAsm; al parecer es por que están escritas en .Net, como por ejm CsFoxyStmp, de nuestro colega Antonio Meza, y CSFoxReadMail.dll de Valentín Fernández.

6 ago 2021
Comparto CSFoxReadMail para descargar archivos adjuntos gmail
https://groups.google.com/g/publicesvfoxpro/c/W4CP8_BJzJQ/m/hRq7qIEPAAAJ?hl=es-419


CsFoxySmtp
https://foxydb.wordpress.com/csfoxysmtp/

----------------------------------------------------------------------------------------
4. Existen algunas DLLs que no necesitan ser registradas para poder ejecutarlas, como por ejm SFMail de Doug Hennig, y LibHPDF.dll (que es utilizada por ejm por FoxyPreviewer para generar PDFs).


Wednesday, March 16, 2022
Sending Emails with Modern Authentication
https://doughennig.blogspot.com/2022/03/sending-emails-with-modern.html

----------------------------------------------------------------------------------------
5. Recordemos además que las FLLs tampoco necesitan ser registradas, sólo que las FLL son para usar únicamente dentro de VFP, y no en otros lenguajes de programación.

Ejemplos: VFPCompression.fll, VfpConnection.fll, VFP2C32.fll, MyFll.fll, FoxTools.fll.

----------------------------------------------------------------------------------------
6. Existen además algunas DLLs que se consideran "autoregistrables". Al parecer ésto indica que no necesitan de Vb6stkit.DLL para ser registradas.
Son registrables mediante la función DllRegisterServer incluida en ellas mismas. Y es muy probable que se deba ejecutar el registro con "permisos de administrador" (así lo menciona Walter en su portal VFPAvanzado).

En VFP tenemos la función AGETFILEVERSION() la cual en su elemento # 13 nos indica si una DLL es autoregistrable o no, en cuyo caso contiene la palabra OLESelfRegister.

Creo recordar que las DLL de CodeJock presentan esa característica, pero no tengo las DLL para mostrarte (tengo entendido que ya no son libres).


if RegChart('MSCHRT20.OCX')
   MessageBox('Registrado Ok')
else
   MessageBox('No se registró')
endif

function RegChart(tcOCX)
declare integer DllRegisterServer in (tcOCX) string lpDllName
return ( DllRegisterServer() = 0 )

**

21 noviembre, 2017 / wrov
Registrando archivos OCX y DLL
https://vfpavanzado.wordpress.com/2017/11/21/registrando-archivos-ocx-y-dll/

----------------------------------------------------------------------------------------
7. Recuerda que cualq DLL/FLL que funcione en VFP-32bits necesita ser re-compilada a 64 bits para poder ejecutarse en 64 bits. O dicho de otra manera: si para ejecutar alguna característica en VFP-32bits necesitas un DLL o FLL, entonces necesitas la versión 64 bits de esa DLL o FLL para ejecutarla en VFPA-x64.

----------------------------------------------------------------------------------------

Alejandro Jorge Falca

unread,
Jun 15, 2022, 9:16:18 PM6/15/22
to publice...@googlegroups.com
Muy interesante y educativa tu respuesta Hernán, gracias...

--
Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/ddc14ec2-892c-4dd6-afa1-a234bcc2fd51n%40googlegroups.com.

HernanCano

unread,
Jun 15, 2022, 10:32:51 PM6/15/22
to Comunidad de Visual Foxpro en Español
Con gusto, colega.

Siempre tuve la inquietud de por qué algunos colegas indicaban que el "registro de las DLLs" se hacía con DllRegisterServer, sin usar DllSelfRegister de VB6STKIT.DLL (ver imagen).

Y luego de muchas pruebas y ensayos, documenté lo que te he escrito. 

Considero que la conclusión a tu consulta es: no se puede evitar el "registro de una DLL" para poder ser usada en un lenguaje de programación en Windows como VFP, a menos que la DLL ya se pueda usar sin ser registrada, como SFMail y  LibHPDF.


borrable1.png
Reply all
Reply to author
Forward
0 new messages