Page 1 of 1
Generación de una DLL
Posted: Tue Nov 21, 2006 6:15 am
by Mike Serra
Buenos días foro:
Permitidme que os plantee una duda, ¿de que maneras hay para guardar imagenes en un fichero, sin que tenga que generarme una carpeta de imagenes e ir incluyendo ahi todas las que vaya usando en el programa?. Tengo problemas a la hora de guardar las imagenes estaticas (bitmaps pequenos, etc. . .) dentro del fichero de recursos del Microsoft Visual c++ y al final siempre acabo poniendo el fichero en la carpeta de imagenes.
GRACIAS DE ANTEMANO.
Posted: Tue Nov 21, 2006 8:05 am
by Antonio Linares
Mike,
Inclúyelas en tu fichero RC como:
nombre BITMAP "fichero.bmp"
Posted: Tue Nov 21, 2006 8:47 am
by Mike Serra
Gracias Antonio
Te comento una cosa, yo no uso ningún fichero .rc, utilizo .res, entonces mi duda está en si la solución seria generarme yo el fichero rc, incluir como me has comentado las imagenes y modificar mi fichero por lotes (compilar) de esta manera:
@ECHO OFF
CLS
ECHO ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ECHO ³ FiveWin for xHarbour 2.8 - October 2006 xHarbour development power ³Ü
ECHO ³ (c) FiveTech, 1993-2006 for Microsoft Windows 95/98/NT/2000/ME and XP ³Û
ECHO ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙÛ
ECHO ÿ ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
if A%1 == A GOTO :SINTAX
if NOT EXIST %1.prg GOTO :NOEXIST
ECHO Compiling...
set hdir=c:\xharbour
set bcdir=c:\bcc55
%hdir%\bin\harbour %1 /n /L /M /i..\..\include
IF ERRORLEVEL 1 PAUSE
IF ERRORLEVEL 1 GOTO EXIT
%bcdir%\bin\bcc32 -M -c -v -O2 -e%1.exe -I%hdir%\include %1.c
:ENDCOMPILE
rem IF EXIST %1.rc %bcdir%\bin\brc32 -r %1 <-- quitar el rem de esta línea
%bcdir%\bin\ilink32 -Gn -aa -Tpe -s -v @cdigest.bc
rem delete temporary files
@del %1.c
IF ERRORLEVEL 1 GOTO LINKERROR
ECHO * Application successfully built
copy main.exe ..\
cd ..
main
cd fue
GOTO EXIT
ECHO
:LINKERROR
rem if exist meminfo.txt notepad meminfo.txt
rem PAUSE * Linking errors *
GOTO EXIT
:SINTAX
ECHO SYNTAX: Build [Program] {-- No especifiques la extensi¢n PRG
ECHO {-- Don't specify .PRG extension
GOTO EXIT
:NOEXIST
ECHO The specified PRG %1 does not exist
:EXIT
P.D.: Por otro lado, ¿cómo hago referencia a éstas imágenes desde mi programa?, ¿con el nombre?
MUCHAS GRACIAS
Posted: Tue Nov 21, 2006 9:46 am
by Antonio Linares
Mike,
Puedes hacerlo de varias maneras. Puedes construir el rc, compilarlo a res y seguir construyendo como lo estás haciendo. O puedes usar el fichero bat y construir siempre el res a partir del rc. Como prefieras.
Como vas a usar las imágenes desde la aplicación ? Como @ ... IMAGE ... ? Como bitmap a mostrar en un browse ? Como botones TBtnBmp con imágenes ? Cada forma tiene su propia sintaxis.
Posted: Tue Nov 21, 2006 10:13 am
by Mike Serra
Antonio:
Perdona mi ignorancia pero no acabo de entender lo que me explicas de que construya el rc y lo compile a res e incluso la segunda opcion tampoco de que puedo usar el fichero bat para construir siempre el res a partir del rc. Yo lo que hago (y si puedes orientarme mejor, aceptaré tus consejos) es que tengo un fichero .res que modifico con el Microsoft Visual C++ y ya ese es el que linko con mi aplicación.
Si eres tan amable de indicarme algún pequeño ejemplo que pueda construir o haya algo en samples.
P.D.: En relación a la segunda pregunta de ¿cómo hacer referencias a las imagenes que haga referencia en este fichero .rc?, te comento, cuando yo en el programa quiero hacer referencia a un dialogo, lo hago haciendo referencia al identificador del fichero .res, es decir, resource <identificador>, y mi pregunta correcta sería, en el caso de las imagenes del fichero .rc que me has comentado que cree, el identificar que sería, ¿el <nombre> que me has indicado?
Como te comenté por telefono, antes de adquirir FW 2.8, ahora creo que es el momento de quitar ciertos vícios que teníamos en el departamento a la hora de programa, y por eso, cualquier cambio que me pudieras proponer será corregído. Si hay algo en lo que no me haya explicado correctamente, y no te importa, puedo llamarte en el momento que me digas.
Posted: Tue Nov 21, 2006 10:56 am
by Antonio Linares
Mike,
Mejor me llamas y te lo explico por teléfono,