Clipper On Line • Ver Tópico - Duvida com arquivo "RC"

Duvida com arquivo "RC"

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

Moderador: Moderadores

 

Duvida com arquivo "RC"

Mensagempor rcalado » 03 Out 2007 11:06

Amigos,

Estou fazendo alguns teste com o FiveWin, e não estou conseguindo abrir um arquivo gerado pelo WorkShop da Borland. Simplesmente eu clico na opção do menu que faz a chamada da rotina e não acontece nada.

Segue abaixo a rotina que faz a chamada e o arquivo RC para análise:

static function IncHis( ) 
   local lSave := .f.
           USE HISTO
           M->CODIGO    := HISTO->CODIGO
           M->DESCRICAO := HISTO->DESCRICAO

           SET 3DLOOK ON
           DEFINE DIALOG oDlg RESOURCE "teste"
           REDEFINE GET      oGet VAR M->CODIGO     PICTURE "@!" ID 101 OF oDlg
           REDEFINE GET      oGet VAR M->DESCRICAO  PICTURE "@!" ID 102 OF oDlg
           REDEFINE BUTTON ID 1 OF oDlg ACTION ( lSave := .t. , oDlg:End() )
           REDEFINE BUTTON ID 2 OF oDlg ACTION ( lSave := .f. , oDlg:End() )
           ACTIVATE DIALOG oDlg CENTERED
if lSave
              APPEND BLANK
              HISTO->CODIGO    := M->CODIGO
              HISTO->DESCRICAO := M->CODIGO
              COMMIT
endif
return .t.


Arquivo RC:

#include "C:\FW24\include\WinApi.ch"
#include "teste.ch"

TESTE DIALOG 18, 27, 207, 111
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX
CAPTION "Cadastro de Históricos"
FONT 8, "Arial"
BEGIN
DEFPUSHBUTTON "OK", IDOK, 20, 93, 50, 14
PUSHBUTTON "Cancela", IDCANCEL, 75, 93, 50, 14
PUSHBUTTON "Ajuda", IDHELP, 130, 93, 50, 14
EDITTEXT IDC_EDIT1, 47, 16, 37, 12
EDITTEXT IDC_EDIT2, 47, 36, 132, 12
LTEXT "Código", -1, 17, 19, 27, 8
LTEXT "Descrição", -1, 9, 39, 35, 8
END


Se alguém puder ajudar ou dar uma dica, desde já agradeço.

abs,

Roberto
rcalado
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 11
Data de registro: 08 Jul 2004 14:38
Cidade/Estado: São Paulo - SP
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Mensagempor rochinha » 03 Out 2007 12:41

Amiguinho,

Deixe eu dar duas palavras.

Apresente o conteudo de seu arquivo .BAT de compilação para apreciarmos e qual forma voce esta compilando o aplicativo.

Os arquivos .RC podem ser agregados ao aplicativo de duas formas:

1 - Incrustrado no .EXE
2 - Incrustrado em .DLL

Antes porem ele deve ser transformado em .RES(resource file) atraves do utilitário Borlando BRC32.EXE

brc32 -r arquivo.rc

O arquivo .RES resultante deverá ser linkando ao EXEcutável por meio de seu linker BLINKER ou ILINK32.

No caso de usar o BLINKER o .RC e o .RES devem possuir o mesmo nome do executável e a linha de comando será:

rc -k arquivo (sem extensão)

No caso de usar o ILINK32 o .RC e o .RES podem possuir qualquer nome e a linha de comando deverá estar dentro do arquivo .BC(Borland Commands) e a linha de compilação deverá chama-lo:

ilink32 -Gn -aa -Tpe -s @arquivo.bc

Nas formas anteriores voce ira incrustra-lo no .EXE

Para usar .DLL basta usar no Workshop o método SALVAR como .DLL no caso de usar Fivewin 16 bits e liga-la ao aplicativo por meio de um comando no .PRG principal:

SET RESOURCES TO "arquivo.dll"

Se o caso for Fivewin for Harbour, por ser um compilador 32bits, as .DLLs não funcionarão e deverão ser montadas através de um outro método, via .BAT:

RC2DLL32.BAT
rem @ECHO OFF
rem RC file to 32 bits resources DLL
rem syntax: rc2dll32.bat Your_rc_file !!! without the .RC extension

@ECHO #include "WinApi.ch"   > ARQUIVO.RC
@ECHO #include "arquivo.rc"   >> ARQUIVO.RC

SET FWDIR=c:\fivewin\fwh24
@IF EXIST ARQUIVO.DLL DEL ARQUIVO.DLL
copy %FWDIR%\dll\SCREEN32.C

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

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


SCREENS.C
#include <windows.h>

#pragma argsused

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

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

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


Após criar a .DLL basta usar o comando:

SET RESOURCES TO "arquivo.dll"
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: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Mensagempor rcalado » 03 Out 2007 13:09

Amigo Rochinha,

Obrigado pela dica, isso é que dá ficar muito tempo sem programar, simplesmente me esqueci de transformar o arquivo RC em RES.

Já fiz os testes e funcionou perfeitamente.

Grande abraço,

Roberto
rcalado
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 11
Data de registro: 08 Jul 2004 14:38
Cidade/Estado: São Paulo - SP
Curtiu: 0 vez
Mens.Curtidas: 0 vez




Retornar para FiveWin

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 12 visitantes


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