Porque eu uso Harbour.

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Re: Porque eu uso Harbour.

Mensagem por asimoes »

Amigos do Forum,

Venho mais uma vez pedir ajuda de vocês, após vencer as etapas de baixar o msvc 2008 express, instalar, depois compilar o harbour com o msvc, gerar a lib do rddleto e rddleto.exe, as libs da hwgui fui fazer um teste com um programa meu que se chama producao.exe já é gerado com bcc. Agora estou tentando com msvc e alguns erros estão aparecendo e eu não sei o que eu fiz de errado.

o erro:
D:\Harbour\DELIVE~1>HBMK2 PRODUCAO.HBM
hbmk2: Processing environment options: -platform=win -compiler=msvc
hbmk2: Linkando... producao.exe
gtwvg.lib(wvgutils.obj) : error LNK2005: _lpwAlign already defined in hwgui.lib(dialog.obj)
gtwvg.lib(wvgutils.obj) : error LNK2005: _nCopyAnsiToWideChar already defined in hwgui.lib(dialog.obj)
producao.exe : fatal error LNK1169: one or more multiply defined symbols found


As bats que eu criei para gerar o executável:

gera.bat (set de variaveis de ambiente, etc)
set hb_compiler=msvc
set lib=d:\harbourx\lib\win\msvc
set include=d:\harbourx\include;c:\projetos\hwgui\include
call "%ProgramFiles%\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"
call app.bat > erros.txt
pause
---------------------------------------------------------------------------------------
app.bat:
hbmk2 producao.hbm %1
---------------------------------------------------------------------------------------
producao.hbm:

Código: Selecionar todos

# ---------------------------
# Nome do Execut vel
# ---------------------------
-oproducao
# ---------------------------
# Bibliotecas
# ---------------------------
-lhwgui
-lprocmisc
-lhbct
-lhbgt
-lgtwvg
-lgtwvt
-lhbnf
-lhbwin
-lxhb
-lrddleto
-lhbtip
# ---------------------------
# Caminhos dos Includes
# ---------------------------
-incpath=d:\harbourx\include;c:\projetos\hwgui\include
# ---------------------------
# Caminho das Libs da HWGui
# ---------------------------
-Lc:\projetos\hwgui\lib
#-Lc:\minigui\harbour\lib
# ---------------------------
# Outros Parametros
# ---------------------------
-workdir=.\
-gtgui
-head=native
-n
-nowarn
-inc
-mt
-b
# ---------------------------
# Prg(s) e Rc(s)
# ---------------------------
PRODUCAO.RC
PPRO0000.PRG
PPRO0001.PRG
BARRA.PRG
EDITOR.PRG
ERRORSYS.PRG
GETCALC.PRG
GETSYS2.PRG
PFDATA.PRG
PFGERAL.PRG
PFREDE.PRG
PROCGUI.PRG
VLIB.PRG
FONTE.PRG
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Porque eu uso Harbour.

Mensagem por Itamar M. Lins Jr. »

É o que já expliquei...
Não precisa dessas linhas

Código: Selecionar todos

set hb_compiler=msvc 
set lib=d:\harbourx\lib\win\msvc 
set include=d:\harbourx\include;c:\projetos\hwgui\include
Eu não sei quais foram suas variaveis na hora de gerar o harbour.
Quando chamamos essa linha:

Código: Selecionar todos

call "%ProgramFiles%\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat" 
[code]
O win-make e hbmk2 já auto detecta o resto.
Remova a lib wvg, se não for usar ou apenas para testes.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Porque eu uso Harbour.

Mensagem por sygecom »

Olá Asimoes,
Tente inverter a sequencia das LIB, deixe a LIB da Hwgui por ultimo.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Re: Porque eu uso Harbour.

Mensagem por asimoes »

Olá Itamar e Sygecom,

Sigecom:

Eu já tentei inverter a ordem das libs passando para esta ordem:

-lgtwvg
-lgtwvt
-lhwgui
...

Itamar:

As libs gtwvg e gtwvt eu preciso porque o sistema faz uso de funções.
Outra coisa, gerando com bcc não há erro.

Itamat e Sygecom eu já resolvi desta forma:

Eu percebo o seguinte o MSVC é mais exigente com relação a nomes de funções, ele não compila se acha alguém com o mesmo nome, note que ele está reclamando de funções em duplicidade, eu até mexi no código dialog da hwgui renomeando as funções: lpwAlign e nCopyAnsiToWideChar para lpwAlignNew e nCopyAnsiToWideCharNew. regerei a hwgui e o executável foi gerado, agora só tem um problema eu uso esta função abaixo que eu uso para adicionar a fonte visuallib.ttf que eu criei para usar com a visuallib nos meus sistemas, com borland bcc está funcionando 100% com msvc, ela até adicionar a fonte mais por algum motivo ainda que não entedi, troca os caracteres da tabela ascii. Então decide por enquando usar somente o bcc que está gerando a aplicação sem problemas.

Código: Selecionar todos

#pragma BEGINDUMP
#define HB_OS_WIN_32_USED
#define _WIN32_WINNT   0x0400

#include "hbwhat.h"
#include <windows.h>
#include "hbapiitm.h"
#include "hbapi.h"
#include "hbvm.h"
#include "hbstack.h"

//-----------------------------------------------------------------------------
// WINGDIAPI int WINAPI AddFontResourceA(IN LPCSTR);

HB_FUNC( ADDFONTRESOURCE )
{
   hb_retni( AddFontResource( (LPCSTR) hb_parcx( 1 ) ) );
}

//-----------------------------------------------------------------------------
// WINGDIAPI BOOL WINAPI RemoveFontResourceA(IN LPCSTR);


HB_FUNC( REMOVEFONTRESOURCE )
{
   hb_retl( RemoveFontResource( (LPCSTR) hb_parcx( 1 ) ) ) ;
}

#pragma ENDDUMP

[]´s
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Porque eu uso Harbour.

Mensagem por Maligno »

NOTA DA MODERAÇÃO:

Se você observarem a primeira mensagem desse tópico verão que ele foi totalmente desvirtuado de seu teor logo na primeira página. A idéia era discutir sobre as características de compiladores e não pedir ajuda ou discutir técnicas para utilizá-los.

Portanto, vou bloquear o tópico, mesmo à custa de "quebrar" alguma discussão já em andamento. Se quiserem discutir sobre qualquer outro assunto, por favor, criem um novo tópico. Aliás, por favor, evitem "misturar" os tópicos. Isso sempre repercute contra a organização do fórum e, claro, contra os próprios usuários.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Trancado