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

Passando de Clipper para Harbour, resource em DLL

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

Moderador: Moderadores

 

Passando de Clipper para Harbour, resource em DLL

Mensagempor bencz » 05 Mai 2014 20:50

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...
Avatar de usuário

bencz
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 422
Data de registro: 28 Abr 2012 17:36
Curtiu: 6 vezes
Mens.Curtidas: 23 vezes

Passando de Clipper para Harbour, resource em DLL

Mensagempor Kapiaba » 09 Mai 2014 10:03

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,
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1483
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 284 vezes
Mens.Curtidas: 90 vezes

Passando de Clipper para Harbour, resource em DLL

Mensagempor Euclides » 13 Mai 2014 10:09

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
Euclides
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 155
Data de registro: 12 Mai 2007 14:07
Cidade/Estado: São Paulo, Capital
Curtiu: 1 vez
Mens.Curtidas: 14 vezes

Passando de Clipper para Harbour, resource em DLL

Mensagempor rochinha » 05 Jun 2014 02:04

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

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4209
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 499 vezes
Mens.Curtidas: 182 vezes




Retornar para FiveWin

Quem está online

Usuários vendo este fórum: Google [Bot] e 1 visitante


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro