Clipper On Line • Ver Tópico - Passando de Clipper para Harbour, resource em DLL
Página 1 de 1

Passando de Clipper para Harbour, resource em DLL

MensagemEnviado: 05 Mai 2014 20:50
por bencz
Jovens, boa noite!

Tenho aplicativos desenvolvidos em Clipper+FW, onde utilizo como resource, aquela bendita DLL que o VW gera... que é em 16bits e etc... e como sabamos, isso não funciona em uma maquina 64bits, e quase q não funciona em um 3bits, pois ele acusa erro...

Então, gostaria de saber a melhor forma de migrar para o uso de RC...., existe algum procedimento no código que deve ser retirado, ( sem comentarios sobre a DLL.. ), utilizo o SET RESOURCES TO "...", da mesma forma ?
Gostaria de saber mais sobre tal...

Passando de Clipper para Harbour, resource em DLL

MensagemEnviado: 09 Mai 2014 10:03
por Kapiaba
Bom dia, vamos tentar clarear:

1 - se você tem 1 ou + .dlls de 16 bits, não tem nenhum inconveniente em muda-la para 32 bits, como:
- No \samples\ do FWH.., tem várias .dlls de 32 bits, ex.: AUTOLA32.DLL

2 - Copie esta .dll de 32 bits para uma pasta teste e use o WORKSHOP.EXE para abri-la, destrua 99% de seu conteudo, que não será útil para você, e depois, importe a sua de 16 bits para dentro dela. Pronto, sua .dll já esta em 32 bits.
Renomei para o seu gosto e assim com as demais...

3 - Para usar arquivo.rc é mais fácil ainda, basta mandar o BRC32.EXE incoporar o .rc ao seu projeto.

4 - se preferir, pode usar os .RES em vez de .RC ai basta mandar o .LNK incorporar, ou se usar o XDEV.EXE, mandar o XDEV.EXE incorporar o seu .RC ou .RES, usando .RES ou .RC, você não necessita do SET RESOURCES TO...

É isso, mais dúvidas, pergunte ou vá diretamente na fonte: www.fivewin.com.br

abs,

Passando de Clipper para Harbour, resource em DLL

MensagemEnviado: 13 Mai 2014 10:09
por Euclides
Bencz,
Você pode abrir o seu DLL 16 bits pelo WORKSHOP e salvá-lo como RC pelo "Save File as...", selecionando "File Type" = RC (Resource Script), usando o mesmo nome da DLL original.
Aí é só utilizar o BUILDH (ou BUILDX) que vem com o FiveWin.
Não esquecer de retirar dos programas os "SET RESOURCES TO" que referenciam os DLL´s de 16 bits.
N.B. pode continuar postando as suas dúvidas de FiveWin aqui mesmo... :))
[]´s, Euclides

Passando de Clipper para Harbour, resource em DLL

MensagemEnviado: 05 Jun 2014 02:04
por rochinha
Amiguinho,

Salve o conteudo abaixo como screen32.c:
#include <windows.h>

#pragma argsused

//------------------------------------------------------------------------//

int WINAPI _export DllEntryPoint( HINSTANCE hinst, DWORD fdwReason,
                                  PVOID pvReserved )
{
   return TRUE;
}

//------------------------------------------------------------------------//


Salve o conteudo abaixo como RC2Dll32.bat:
rem @ECHO OFF
rem RC file to 32 bits resources DLL
rem syntax: rc2dll32.bat Your_rc_file !!! without the .RC extension

@SET FWDIR=c:\fivewin\fwh27

@IF EXIST %1.DLL DEL %1.DLL

%FWDIR%\bin\bcc32 -c -I%FWDIR%\include SCREEN32.C
%FWDIR%\bin\brc32 -r %1.rc
%FWDIR%\bin\ilink32 /Tpd /v %FWDIR%\lib\c0d32.obj dll\SCREEN32.OBJ, %1.DLL,,%FWDIR%\lib\cw32.lib %FWDIR%\lib\import32.lib,, %1.RES

@IF EXIST %1.res DEL %1.RES > NULL
@IF EXIST %1.ils DEL %1.ils > NULL
@IF EXIST %1.ilf DEL %1.ilf > NULL
@IF EXIST %1.ilc DEL %1.ilc > NULL
@IF EXIST %1.ild DEL %1.ild > NULL
@IF EXIST %1.tds DEL %1.tds > NULL
@IF EXIST %1.map DEL %1.map > NULL
@IF EXIST NULL.       DEL NULL.

@DIR %1.DLL

:fim


Execute o .BAT passando o nome da .RC que deseja gerar a .DLL, assim:

RC2Dll32.bat NomeDaRC

Vale lembrar que se suas .RCs usarem controles padrão Borland voce tera uns paus. Deixe somente controles padrão básicos, sem as frescuras dos efeitos Borland.

Em tempo as .RCs tem limite no tamanho quando inseridas diretamente no executável, ou seja, os recursos como diálogos e imagens podem ser mesclados no executável tornando-os unicos. O Build do Fivewin faz isto bastando que o EXEcutável e o ResourCe tenham o mesmo nome.

Caso seu EXEcutável já esteja enorme ou a .RC esteja grande voce deverá compilá-los em separado e chamar a .DLL via Set Resource To.

Caso não consiga manipular os .RCs diretamente no WorkShop por falta de memória pelo tamanho dos mesmo, recorte seu .RC em pedaços, edite-os e compile através de um único .RC, exemplo:

TodosRCs.RC:
#include "RC01.RC"
#include "RC02.RC"
#include "RC03.RC"
#include "RC04.RC"
#include "RC0X.RC"


Voce pode ter um .RC para cada módulo de seu sistema, criar uma .DLL para cada módulo e chamá-los quando necessário.