Pular para o conteúdo

GUI e Windowed

Nesta página

Aplicativos sem console

No Windows, um executável padrão abre uma janela de terminal ao ser executado. Para apps desktop que usam janela nativa (via winit/wgpu, por exemplo), isso é indesejado. A flag --windowed (ou o alias --gui) linka o .zex contra o subsistema GUI do Windows, suprimindo a janela de console:

--standalone --windowed gera um .zex sem console no Windows; em outras plataformas a flag é aceita mas não tem efeito visível.

04-windowed-gui.zolo
Playground
// Feature: console-free GUI build — `--windowed` / `--gui`

// Syntax: `zolo build file.zolo --emit zex --standalone --windowed`

// When to use: ship a desktop/GUI app on Windows that should NOT pop up

//   a console window when launched.


// Run (Windows):

//   zolo build 31-distribution/04-windowed-gui.zolo --emit zex --standalone --windowed

//   # `--gui` is an alias for `--windowed`.

//

// `--windowed` builds a standalone Windows `.zex` linked against the GUI

// subsystem, so double-clicking it opens no console window. On other

// platforms the flag is accepted but a console app is the norm.

//

// You can also set this in zolo.toml instead of passing the flag:

//   [build]

//   gui = true


// A GUI program typically opens a window (winit/wgpu) rather than printing.

// This stub just shows the build invocation; for a real window see the

// graphics examples under ../../../examples/.

print("Built as a windowed app — no console on Windows.")

// expected (when run from a terminal): the line above.

Requer a CLI/host do Zolo — abra no playground ou rode localmente.

A mesma configuração pode ser definida em zolo.toml para não precisar passar a flag a cada build:

[build]
gui = true

Executando arquivos prontos

O comando zolo run aceita tanto arquivos-fonte .zolo quanto arquivos já compilados .zex ou .zar — detecta o formato automaticamente e carrega o bytecode embutido. Isso é o lado do consumidor do fluxo de distribuição: o autor entrega o .zex, o usuário executa sem precisar do fonte:

zolo run app.zex executa o bytecode empacotado — nenhum fonte necessário.

05-run-archive.zolo
Playground
// Feature: run a built archive — `zolo run <archive>`

// Syntax: `zolo run app.zex`  |  `zolo run lib.zar`

// When to use: execute a `.zex`/`.zar` you (or someone else) built,

//   without rebuilding from source.


// Workflow:

//   zolo build 31-distribution/05-run-archive.zolo --emit zex

//   zolo run   target/05-run-archive-0.0.0.zex

//

// `zolo run` accepts a `.zolo` source file OR a prebuilt `.zex`/`.zar`

// archive — it detects the format and loads the embedded bytecode. This

// is the consumer side of the distribution flow:

//

//   author:   zolo build app.zolo --emit zex   (produces app.zex)

//   consumer: zolo run app.zex                 (no source needed)


let parts = ["dist", "ribut", "ion"]
print(parts.join(""))

// expected: distribution

Requer a CLI/host do Zolo — abra no playground ou rode localmente.

Desafio

Compile 05-run-archive.zolo com --emit zex e depois execute o .zex gerado com zolo run. Confirme que a saída é distribution sem recompilar.

Veja também

Buscar no Zolo

9 resultados

enespt-br