Page 1 of 1

De 16 a 32Bits-Caso02 - Cambio uso de DLL a RC

Posted: Tue Apr 24, 2007 3:11 am
by lubin
Buenas Noches.

Siguiendo con la implmentacion para pasar a de 16FW a FWH

1. Yo utilizaba WorkShop de Borland, y tengo todo en DLL, segun lo leido en la documentacion es recomendable que toda esta DLL grabarla como un solo RC, que sea del Mismo nombre del PRG principal. para incluirlo directamente en el EXE al momento de linkearlo,
Consulta:
A. ES CORRECTO ??
B. se puede seguir usando el WorkShop si continuamos trabajando con el Metodo RC ???
C. alguna recomendacion , es necesario otro manejador de recursos???


2. En realidad cargaba dos DLL de la siguiente manera :

W1_DLL = W_PATH_DLL+"FWDLL\WGES.DLL"
W2_DLL = W_PATH_DLL+"FWDLL\BWCC.DLL"
SET RESOURCES TO W1_DLL,W2_DLL

como veran, cargaba dos DLL que se encontraban en la carpeta W_PATH_DLL

Segun lo leido, he cambiado esta carga de DLL por lo siguiente al inicio del programa principal:

* Activacion del BCC32.DLL PARA USAR BOTONES DE BORLAND
BWCCRegister( GetResources() )

y al Final del PRG Principal he puesto lo siguiente:

DLL32 FUNCTION BWCCRegister( hInst AS LONG ) AS WORD PASCAL LIB "BWCC32.DLL"

Consulta:
AHORA LUEGO DE _ TENGO PROBLEMAS AL EJECUTAR ALGUNA OPCION QUE USE DIALOGOS CREADOS EN ESTE RC, COMO SI NO EXISTIERA. EN CAMBIO SI USO DIALOGOS SIN RECURSOS O MENSAJES FUNCIONA NORMAL.

Me dan una ayuda

Gracias.

Lubin

Posted: Tue Apr 24, 2007 7:07 am
by Antonio Linares
Es correcto: Salvar los recursos como RC y que se enlacen dentro del EXE.

> SET RESOURCES TO W1_DLL,W2_DLL

Quita esta línea, ya que los recursos los localiza la aplicación directamente

Puedes seguir usando el Resources Workshop, ó usar el PellesC que incluye editor de recursos, u otros más que existen.

Posted: Wed Apr 25, 2007 2:04 am
by lubin
Hola Antonio

Por aqui siguiendo la historia con DLL y RC

Te comento que me sale un error al ejecutar unas de las opciones del menu del Programa, definitivamente es cuando se va activar uno de los dialogos , porque cuando uso un MSGSTOP("Prueba") `por ejemplo , sale bien y pero al entar a crear el dialogo sale el problema


FiveWin For Harbour GPF occurred

Called From : DIALOGBOX/0)
Called From : TDIALOG:ACTIVATE(0)
Called From : WFI_REINDEX(320)
Called....


Este ultimo modulo es el programa que invoca al Dialogo que esta en el RC.

en otras opciones de mi menu se sale simplemente del programa al Windows , sin mensaje alguno.

Me das una ida, Gracias

Lubin

Antonio Linares wrote:Es correcto: Salvar los recursos como RC y que se enlacen dentro del EXE.

> SET RESOURCES TO W1_DLL,W2_DLL

Quita esta línea, ya que los recursos los localiza la aplicación directamente

Puedes seguir usando el Resources Workshop, ó usar el PellesC que incluye editor de recursos, u otros más que existen.

Posted: Wed Apr 25, 2007 5:55 am
by Antonio Linares
Lubin,

Intenta proporcionarnos un ejemplo pequeño y autocontenido que reproduzca el error, para que podamos probarlo aqui. Gracias,

Posted: Wed Apr 25, 2007 6:54 pm
by Raymundo Islas M.
Hola Lubin

Si ya convertitste la DLL a RC, abrelo con algun editor de textos, y busca la palabra Borland, es probable que por algun lugar tengas definido un control de ese tipo.

Saludos

Posted: Wed Apr 25, 2007 9:40 pm
by lubin
Hola Raymundo,
Ya le di una verificada pero no existe ninguna definicion con BORLAND
vere hacerle un seguimiento usando un DLL pequeño, pues el que tengo tiene muchos dialogos, para detectar el error,

Gracias, por el aliento ...

Lubin

Raymundo Islas M. wrote:Hola Lubin

Si ya convertitste la DLL a RC, abrelo con algun editor de textos, y busca la palabra Borland, es probable que por algun lugar tengas definido un control de ese tipo.

Saludos

Posted: Mon Apr 30, 2007 1:50 am
by lubin
Hola Raymundo y a los amigos del foro

Por aqui regresando...

te comentare que sigo aun con el problema no encontre nada con la palabra Borland
pero ubique posibles controles como :

BorStatic
BorBtn
BorShade

creo qe son controles borland ,,, seria ese el problema ??

estaba usando el verce para generar el archivo exe pero ahora lo hice a mano.. usando un BAT parecido al build.bat de samples.. pero me salio el mismo mensaje de error

bueno... si hay alguna idea

gracias..


Raymundo Islas M. wrote:Hola Lubin

Si ya convertitste la DLL a RC, abrelo con algun editor de textos, y busca la palabra Borland, es probable que por algun lugar tengas definido un control de ese tipo.

Saludos

Posted: Mon Apr 30, 2007 6:28 am
by Antonio Linares
Lubin,

La forma correcta de usar controles de Borland en 32 bits es esta:

Code: Select all

   ... 
   local hBorland := LoadLibrary( "BWCC32.DLL" ) 
    
   BWCCRegister( GetResources() ) 

   ... (código de tu aplicación) 

   FreeLibrary( hBorland ) 

return nil 

DLL32 FUNCTION BWCCRegister( hInst AS LONG ) AS WORD PASCAL LIB "BWCC32.DLL"

Posted: Mon Apr 30, 2007 1:46 pm
by Raymundo Islas M.
Hola Lubin

Efectivamente, esos son los controles.

En este caso tienes 2 opciones :

- Aplicar el codigo que te comenta Antonio

- Sustituirlos por otros controles similares


Si haces una busqueda y checas en muchos post anteriores refentes a este punto, veras que todos coinciden en desaparecer estos controles.


Saludos.

Posted: Mon Apr 30, 2007 2:09 pm
by lubin
Hola , Antonio y Raymundo

Efectivamente, con FW16 Bits me encontre con ese problema, y se resolvio retirando muchos de esos controles, por ello algo recordaba..
pero quedaron algunos que por lo visto aun fastifdian en FWH, pero para todo problema hay una soluciuon...

gracias sus comentarios.

Les comentare los resultados de ello


y aproposito .. FELIZ DIA DEL TRABAJADOR !!!!!

Lubin


Raymundo Islas M. wrote:Hola Lubin

Efectivamente, esos son los controles.

En este caso tienes 2 opciones :

- Aplicar el codigo que te comenta Antonio

- Sustituirlos por otros controles similares


Si haces una busqueda y checas en muchos post anteriores refentes a este punto, veras que todos coinciden en desaparecer estos controles.


Saludos.

Re: De 16 a 32Bits-Caso02 - Cambio uso de DLL a RC

Posted: Mon Apr 30, 2007 9:42 pm
by lubin
Gracias Antonio y Raymundo

Al parecer este problema llego a su fin, y confirmo las soluciones comentadas en este tema:

Alternativas de Solucion :
1ra alternativa : . Colocar el Codigo indicado por Antonio
o 2da alternativa : retirar los botones de Borland

Ambas alternativas fueron probadas y son totalmente operativas

Gracias a ambos

Seguro nos vemos en algun otro tema en mi conversion de 16Bits a 32 Bits

Lubin