Task: Fix Windows link error: HistoryDialog missing ORES_QT_API export
Table of Contents
This page documents a task in the Migrate all entities onto the generic HistoryDialog story. It captures the goal, current status, acceptance, and any notes or results.
Goal
Fix the Windows CI build break reported right after PR #1567 merged:
ores.qt.refdata.dll fails to link with LNK2019=/=LNK2001
unresolved externals for ores::qt::HistoryDialog's constructor,
loadHistory(), signals, and staticMetaObject, referenced from
CurrencyController.cpp. Root cause: HistoryDialog (task
7D8659AB) never got the ORES_QT_API dllexport/dllimport macro every
other ores.qt.api class carries — invisible on Linux/macOS (default
symbol visibility), fatal on MSVC's explicit export model.
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent story | Migrate all entities onto the generic HistoryDialog |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-07-14 |
Acceptance
HistoryDialogcarriesORES_QT_API, matching every other exported class inores.qt.api(e.g.HistoryDialogBase).- Windows CI (
windows-msvc-debug-ninja) linksores.qt.refdata.dllsuccessfully. - No behavioural change on Linux/macOS.
Plan
(Implementation strategy. Written when work starts; key decisions
are distilled into the parent story's * Decisions at close, but the
plan itself stays — it is the historical record of what we did.)
Notes
Test Scenarios
Manual QA scenarios (scaffolded via compass add test_scenario, run
through the QA Validation Runner panel) that verify this task. Link
new ones here as they're created; the scenario doc itself links back
via its "Verifies task" field.
| Scenario | State | Notes |
|---|---|---|
PRs
| PR | Title |
|---|---|
| #1569 | [qt] Fix Windows link error: HistoryDialog missing ORES_QT_API export |
Review
| Comment summary | File | Decision | Notes |
|---|---|---|---|
Result
One-line fix: added #include "ores.qt/export.hpp" and the
ORES_QT_API macro to HistoryDialog's class declaration. Verified
locally (linux-clang-debug-make, full build clean; ctest
ores.diff=/=ores.refdata.api=/=ores.qt.headless=/=ores.qt.tests 4/4
passed); Windows link result to be confirmed by CI.