Passando de Clipper para Harbour, resource em DLL

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

Passando de Clipper para Harbour, resource em DLL

Mensagem 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...
Imagem
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Passando de Clipper para Harbour, resource em DLL

Mensagem 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,
Euclides
Usuário Nível 3
Usuário Nível 3
Mensagens: 154
Registrado em: 12 Mai 2007 14:07
Localização: São Paulo, Capital

Passando de Clipper para Harbour, resource em DLL

Mensagem 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
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Passando de Clipper para Harbour, resource em DLL

Mensagem por rochinha »

Amiguinho,

Salve o conteudo abaixo como screen32.c:

Código: Selecionar todos

#include <windows.h>

#pragma argsused

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

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

//------------------------------------------------------------------------//
Salve o conteudo abaixo como RC2Dll32.bat:

Código: Selecionar todos

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:

Código: Selecionar todos

#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.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Responder