Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>ExataDev FiveWinNew to Visual Studio Code? Get it now.
ExataDev FiveWin

ExataDev FiveWin

Exata Sistemas

|
2 installs
| (0) | Free
Desenvolvimento fivewin com vscode
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

ExataDev FiveWin

Compile projetos FiveWin + xHarbour sem sair do VS Code. A extensão monta o projeto a partir dos arquivos que você escolhe, gera o compile.bat e roda a compilação no terminal integrado. Ela gera:

  • executável (.exe), com compilação incremental;
  • biblioteca (.lib);
  • scripts HRB (.hrb).

Mudou de endereço: a partir da 0.0.10, a extensão é publicada como ExataSistemas.exatadev-fivewin. A antiga, ExataDev.exatadev, parou na 0.0.9 e não recebe mais atualizações. Se ela estiver instalada, desinstale-a e instale esta.

Requisitos

  • Windows.
  • Borland C++ (BCC) com bcc32, ilink32 e tlib disponíveis.
  • xHarbour (harbour.exe).
  • FiveWin.
  • Um arquivo principal (por padrão Main.prg) na pasta raiz do projeto.

Primeiros passos

  1. Abra a pasta do projeto no VS Code.
  2. Rode qualquer comando da extensão (Ctrl+Shift+P → Compilar) ou abra a visão File Explorer no Explorer. A extensão cria na raiz do projeto:
    • config.json: caminhos do compilador, destino e linhas do link;
    • arquivos.json: arquivos do projeto e datas da última compilação. Esse arquivo é mantido pela extensão.
  3. Ajuste o config.json para a sua máquina (veja abaixo).
  4. Na visão File Explorer, use o botão + para adicionar os arquivos .prg, .frm, .res e .lib do projeto.
  5. Rode Compilar.

O arquivo principal (main) é sempre compilado e não precisa ser adicionado na lista. Os demais fontes só entram na compilação se estiverem na visão File Explorer.

Comandos

Comando O que faz
Compilar Compila só os fontes alterados desde a última compilação e os que ainda não têm .obj, linka o executável e o abre ao final.
Compilar tudo Igual ao anterior, mas recompila todos os fontes.
Compilar: Lib Compila os fontes alterados e gera uma biblioteca com o mesmo nome e pasta do destino.exe, trocando .exe por .lib.
Compilar tudo: Lib Igual ao anterior, recompilando todos os fontes.
Compilar tudo: HRB Gera um .hrb por fonte e os move para destino.hrb.

Os objetos intermediários (.c e .obj) ficam na pasta obj dentro do projeto.

Configuração (config.json)

{
	"main": "Main.prg",
	"destino": {
		"exe": "C:/Workspace/program.exe",
		"hrb": "C:/Workspace/bin"
	},
	"compiler": {
		"path": "C:/BCC/BIN;C:/fivewin/lib;C:/xharbour/bin",
		"include": "C:/BCC/include;C:/fivewin/include;C:/xharbour/include",
		"lib": "C:/BCC/lib;C:/BCC/lib/psdk;C:/fivewin/lib;C:/xharbour/lib",
		"xharbour": "C:/xharbour/",
		"defines": {
			"exe": ["EXATA_EXE"],
			"lib": ["EXATA_EXE"],
			"hrb": []
		},
		"bat": [
			{ "line": "-aa" },
			{ "line": "-Gn -Tpe -s" },
			{ "line": "c0w32.obj" },
			{ "line": "project_files_prg_frm" },
			{ "line": "project_file_exe" },
			{ "line": "FiveHx.lib FiveHC.lib" },
			{ "line": "project_files_lib" },
			{ "line": "cw32.lib" },
			{ "line": "import32.lib" }
		]
	}
}
Chave Descrição
main Arquivo principal, relativo à raiz do projeto.
destino.exe Caminho completo do executável gerado. Também define o nome e a pasta da .lib.
destino.hrb Pasta para onde os .hrb são movidos. Os logs de compilação ficam em _history, dentro dela.
compiler.path Pastas para o PATH durante a compilação (BCC, FiveWin, xHarbour).
compiler.include Pastas de include.
compiler.lib Pastas de bibliotecas.
compiler.xharbour Pasta raiz do xHarbour, terminada em /. Usada só na compilação de HRB. Não vem no arquivo padrão; acrescente-a se for gerar HRB.
compiler.defines Defines extras passados ao harbour.exe em cada tipo de compilação (veja abaixo).
compiler.bat Linhas do arquivo de resposta do ilink32, na ordem do link.

O exemplo acima foi resumido. O config.json criado pela extensão já traz a lista completa de bibliotecas do xHarbour e do Windows.

Marcadores em compiler.bat

Nas linhas do link, estes valores são trocados automaticamente:

Marcador Substituído por
project_files_prg_frm Os .obj de todos os fontes do projeto.
project_file_exe O executável (destino.exe) e o .map correspondente.
project_files_lib As .lib adicionadas na visão File Explorer.

Os arquivos .res adicionados ao projeto entram no final do link automaticamente.

Defines do harbour.exe (compiler.defines)

Cada tipo de compilação tem parâmetros fixos, que a extensão sempre passa, e uma lista de defines que você configura. Cada nome da lista vira um /d<NOME> no fim da linha do harbour.exe.

Chave Compilação Parâmetros fixos Defines padrão Linha resultante (padrão)
exe Executável /q /M /N ["EXATA_EXE"] /M /N /dEXATA_EXE
lib Lib /q /M /N -DxHB ["EXATA_EXE"] /M /N -DxHB /dEXATA_EXE
hrb HRB /n /gh [] /n /gh

Exemplos:

  • Para não passar nenhum define extra no executável, use "exe": [].
  • Para acrescentar outro define, use "exe": ["EXATA_EXE", "MEU_DEFINE"]. O resultado é /M /N /dEXATA_EXE /dMEU_DEFINE.

Se compiler.defines não existir no config.json, a extensão usa os valores padrão e grava a chave no arquivo na próxima compilação. Se uma das listas estiver ausente ou não for uma lista, vale o padrão dela.

Recompilação automática

A extensão guarda no arquivos.json (flags_update) os parâmetros da última compilação. A próxima compilação recompila todos os fontes, mesmo pelo Compilar, quando:

  • os defines mudaram;
  • você alternou entre compilar executável e lib.

Assim, nenhum .obj gerado com parâmetros diferentes entra no link.

EXATA_EXE

O define EXATA_EXE indica ao exatadyn.ch que o fonte faz parte de um executável. Os HRB não o recebem. Com o exatadyn.ch novo, um executável compilado sem ele gera Unresolved external no link.

Problemas conhecidos

  • A extensão foi feita para Windows e para o fluxo BCC + xHarbour + FiveWin. Outros compiladores não são suportados.
  • Se o terminal integrado já estiver ocupado, o compile.bat é enviado ao primeiro terminal aberto.

Notas de versão

Veja o CHANGELOG.

0.0.11

  • Os defines do harbour.exe ficam configuráveis em compiler.defines.
  • Quando os defines mudam, ou quando você alterna entre exe e lib, a próxima compilação recompila todos os fontes.
  • A extensão ganhou ícone.

0.0.10

A compilação de executável e de lib passa /dEXATA_EXE ao harbour.exe. Com o exatadyn.ch novo, versões anteriores da extensão geram Unresolved external no link do executável.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft