Harbour & MSVC

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

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Harbour & MSVC

Mensagem por JoséQuintas »

Alguém usando Harbour com MSVC?
E poderia passar as dicas de como fazer?

Ao que parece, precisa gerar tudo em msvc, incluindo LIBs compatíveis.
Queria fazer uns testes pra comparar com Borland C.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Harbour & MSVC

Mensagem por sygecom »

Oi José,
Primeiro baixe o Harbour do SVN, sabe fazer isso já ? se não, de uma olhada no link abaixo.
https://docs.google.com/document/d/1GC1 ... zLUf0/edit

Tens que baixar o compilador C da Microsoft, eu particularmente selecionei a linguagem espanhol e baixei o instalador usando o link abaixo:
http://www.microsoft.com/visualstudio/e ... pp-express

Esse instalador vem um monte de coisa para instalar inclusive o MSSQL Server, eu deixe tudo marcado menos o MSSQL e mudei o local da instalação que ficaria originalmente em: ARQUIVOS DE PROGRAMAS para instalar tudo em D:\DEVEL\MSVC
Demora até baixar e instalar tudo...

Meus caminhos ficaram então assim:
D:\DEVEL\MSVC
D:\DEVEL\HARBOUR_SVN

Eu criei um .BAT com o seguinte conteúdo e deixei ele em D:\DEVEL:
@echo off
cd msvc\VC
call vcvarsall.bat"
cd\devel\harbour_svn
set HB_COMPILER_VER=1500
set HB_INSTALL_PREFIX=D:\devel\hb-msvc
set HB_INSTALL_IMPLIB=yes
set HB_BUILD_CONTRIB_DYN=yes
set HB_WITH_PGSQL=d:\pgsql\include
set HB_WITH_BLAT=D:\devel\blat262\full\source
set HB_WITH_ADS=D:\devel\ads\include
set HB_WITH_GD=D:\devel\gd-2.0.34\include
set HB_WITH_FREEIMAGE=d:\devel\FreeImage\Dist
set HB_WITH_FIREBIRD=D:\Firebird_2_1\include
set HB_WITH_SQLITE3=d:\devel\sqlite-3_6_22
SET HB_WITH_QT=D:\DEVEL\QT\4.7.4\INCLUDE
set HB_QTPATH=D:\devel\Qt\4.6.3\bin
set HB_QT_BUILD_STATIC=yes
%SystemRoot%\system32\cmd.exe

Depois que der dois clique nesse .BAT é só digitar:
win-make clean
win-make install

Isso deve compilar o harbour usando MSVC depois é só usar o HBMK2 igual como já usa porém setando para esse Harbour que no meu exemplo acima vai criar em: D:\devel\hb-msvc

Qualquer coisa posta aqui !!!
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Harbour & MSVC

Mensagem por JoséQuintas »

Testei com Harbour oficial, pra gerar meus EXEs, mas não pra gerar o Harbour.
O EXE me pareceu mais rápido.
Estou colocando em prática pra ver os resultados: Visual Studio C++ 2010 Express

Removi o Harbour e reinstalei, só pra conferir e postar aqui.
Após instalar o Harbour oficial, fui instalando o que era reclamado ref falta de path e arquivos .h (include)
Acredito ser importante os includes do C++ em primeiro lugar na ordem de pesquisa
Fui fazendo assim, mas agora vou alterar definitivo na máquina, em variáveis de ambiente

SET path=%path%;c:\program files\microsoft sdks\windows\v7.0a\bin
SET path=%path%;c:\Program Files\Microsoft Visual Studio 10.0\VC\bin
SET path=%PATH%;c:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE
SET INCLUDE=c:\Program Files\Microsoft Visual Studio 10.0\VC\include;%INCLUDE%
SET LIB=c:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib;%LIB%
SET LIB=c:\Program Files\Microsoft Visual Studio 10.0\VC\lib;%LIB%

Só pra dar uma idéia de que há diferença entre os compiladores, uma das diferenças é o tamanho:

mingw 5.645.595 apos upx 2.203.419
bcc 4.478.464 apos upx 1.417.728
msvc 4.297.216 apos upx 1.323.520

Obs.
O compilado com msvc foi o único que aceitou usar o mesmo compactador de exe que eu usava no VB, mas com upx fica menor.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Harbour & MSVC

Mensagem por JoséQuintas »

Comecei a instalar em clientes.
Me disseram que o sistema ficou mais rápido.
Já adotei como padrão: troquei o Borland C 5.5 pelo Visual C++ 2010 Express
Não sei quando entrar na parte gráfica, se as LIBs poderão ser recompiladas.
Por enquanto o resultado foi EXE menor e mais rápido.

No caso do Harboour, estou usando exatamente como baixei, só o pacote normal da versão 3.0.
Instalei o MSVC e configurei pra compilar meus fontes.
Se alguém gostou da idéia, é por sua conta e risco.

O MSVC pode ser instalado via web, ou o download do ISO de 600MB com todo o Visual Studio.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Harbour & MSVC

Mensagem por JoséQuintas »

Sobre compilar a versão do CVS...
Da outra vez que compilei com o BCC me gerou uma versão com funcionamento diferente em alguns detalhes.
Até insisti lá no grupo de desenvolvedores sobre o problema, e no final era só na minha compilação.
Não pretendo mexer com CVS tão cedo, a não ser que apareça algo que interesse muuuuuito.
Até interessa telas em unicode, pra usar acentuação, mas deixar isso pra depois.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

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

Harbour & MSVC

Mensagem por asimoes »

Senhores,

A HWGUI é compatível com MSVC?
►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
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Harbour & MSVC

Mensagem por sygecom »

asimoes escreveu:Senhores,

A HWGUI é compatível com MSVC?
Sim, só usar o hbmk2

hbmk2 @hbactivex.hbp
hbmk2 @hbxml.hbp
hbmk2 @hwg_qhtm.hbp
hbmk2 @hwgui.hbp
hbmk2 @procmisc.hbp
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

Harbour & MSVC

Mensagem por asimoes »

Resposndendo a minha pergunta: O MSVC é compativel com a HWGUI. baixei o visual c++ 2010, compilei o harbour e depois a hwgui, funcionou sem problemas.
►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
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Harbour & MSVC

Mensagem por asimoes »

Consegui uma versão do MSVC 2010 que não precisa instalar.

http://www.4shared.com/archive/qGbB2WTZ ... 1_x86.html
►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
viniciuspc
Usuário Nível 1
Usuário Nível 1
Mensagens: 40
Registrado em: 19 Dez 2006 17:18
Localização: Rio de Janeiro

Harbour & MSVC

Mensagem por viniciuspc »

Pessoal,

O único "problema" ao MSVC é sobre o Win95-98, o aplicativo não roda nestas plataformas...

mas o quanho de performaçe é maior em relação ao BCC, e eu acho que ainda tem a opção em 64 bits...

[]´s
Clipper 5.2e + Blinker 5.10
Harbour 3.0.0 (Rev. 16951) + Microsoft Visual C++ 16.0.40219 (32-bit)
jefb_dias
Usuário Nível 1
Usuário Nível 1
Mensagens: 1
Registrado em: 28 Mar 2019 14:22
Localização: São Paulo - SP

Harbour & MSVC

Mensagem por jefb_dias »

Olá tudo bem pessoal

encontrei em minhas pesquisas de utilização do Visual Studio, este conteúdo.

existe um material mais atualizado para que eu possa implementar, pois não encontro o compilador C microsoft entre outras coisas.

aguardo um retorno

Jefferson
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Harbour & MSVC

Mensagem por JoséQuintas »

jefb_dias escreveu:existe um material mais atualizado para que eu possa implementar, pois não encontro o compilador C microsoft entre outras coisas.
Sinceramente... não compensa, a menos que realmente precise dele.

Até a versão 2010, dava pra baixar o MSVC em separado do restante do Visual Studio, 1GB de download mais 1GB de atualização.
Depois da versão 2010, somente baixando o Visual Studio completo, com tudo que é linguagem Microsoft.
Além disso, instalar o run-time do MSVC, em TODAS as máquinas dos clientes, conforme a versão do Windows.

Já para o compilador mingw... o download é de 50MB, e não precisa instalar nada nas máquinas dos clientes.

SET HB_COMPILER=msvc
SET HB_COMPILER=mingw
SET HB_COMPILER=bcc

A variável acima determina o compilador para geração do Harbour e para uso.
Se essa variável existir no Windows, é o compilador que vai ser usado como padrão.
Basicamente é configurar o compilador C, seja qual for, e o Harbour faz o resto.

SET HB_INSTALL_PREFIX=c:\harbour34
SET HB_COMPILER=mingw
win-make clean install

O win-make.exe, não vém com Harbour 3.4, na verdade esse é o MAKE do compilador C (mingw) que era copiado para o Harbour. Basta baixá-lo.

Para as LIBs opcionais - só compila quem quiser/precisar - vai ter que olhar as necessidades de cada uma, não uso nenhuma delas.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Harbour & MSVC

Mensagem por JoséQuintas »

Se quiser ter várias versões de compilador C na máquina:

Faço assim, não sei se tem outra forma mais fácil:

Configure cada compilador C

SET HB_INSTALL_PREFIX=c:\harbour
SET HB_COMPILER=msvc
win-make clean install
SET HB_COMPILER=msvc64
win-make install
SET HB_COMPILER=bcc
win-make install
SET HB_COMPILER=bcc64
win-make install
SET HB_COMPILER=mingw
win-make install
SET HB_COMIPLER=mingw64
win-make install

Ao final de tudo isso, poderá usar MSVC, MINGW ou BCC, nas versões 32 ou 64 bits, no momento que quiser.

Qualquer versão de Harbour trabalha com qualquer versão de C.
Você pode usar um Harbour MINGW pra gerar programa em MSVC, mas o EXE só vai ser gerado se o Harbour contiver as LIBs de MSVC - vai dar falta delas na linquedição, caso o Harbour não as tenha.

Em outras palavras:

lib/win/mingw
lib/win/msvc
lib/win/mingw64

Essas são algumas das pastas de LIBs do Harbour, uma para cada compilador C diferente.
Pode usar qualquer Harbour com qualquer compilador C, mas precisa da pasta LIB correspondente ao compilador que vai usar.
Só que essas pastas só são criadas na geração do Harbour, por isso vai precisar gerar um Harbour pra MSVC, pra ter a pasta lib/msvc. No restante, tanto faz, pode usar qualquer Harbour, mesmo que não tenha sido gerado pra MSVC.

Isso pode ser bom se quiser comparar cada compilador C.

Só lembrando:

O executável do MSVC fica menor... digamos que reduza em 500KB.
E fica menor porque depende do run-time que precisa ser instalado em TODAS as máquinas, o que acaba sendo mais de 500KB.... qual a vantagem em reduzir 500KB ???? (que nem foram reduzidos)

Mas se vai adicionar ícones ao EXE... 5 MB de ícones... qual a vantagem em reduzir 500KB ????

Lembrando também que existem mais LIBs pra usar com MINGW do que com MSVC, o que trás mais desvantagens.

Já usei MSVC por até mais de um ano, na época até valia a pena, agora não mais.

Analise o porquê de querer usar o MSVC primeiro, senão vai ser trabalho à toa, existem mais DESVANTAGENS do que vantagens.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder