Заявления об ISO C ++ в комментариях к этому ответу плохо отредактированы.Ни одно из представленных здесь решений не навязывает вычислительному коду требование перехода на другой диалект C ++.Сам код GUI может быть другой историей.
Ответы об использовании Windows Forms с управляемым C ++, вероятно, наиболее практичны.Большая часть кода, относящегося к пользовательскому интерфейсу, была бы на диалекте (расширении) C ++, где указатели .NET-сборщика мусора будут жить рядом с традиционными указателями ISO C ++.Я не использовал этот метод, но из того, что я прочитал, он может быть лучше, чем тот, который я использовал.
MFC может быть более практичным, если вы не хотите вкладывать средства в знания .NET для этой задачи.Он использует стандартные конструкции C ++ для переноса Windows API.Windows API использует определенное соглашение о вызовах, которое C ++ обычно не использует, и для работы с ним требуется расширение C ++, но это ничем не отличается от наличия программы C ++, которая вызывает некоторые функции, которые являются внешними "C".В Visual Studio есть инструмент компоновки графического интерфейса, который действительно хорош для компоновки диалогов и сопряжения виджетов диалогов с переменными, которые отражают состояние виджетов.Я использовал это.Если вы можете свести графический интерфейс пользователя к диалоговому окну, это было бы отличным вариантом, в противном случае вы бы использовали одно из управляемых макетом окон MFC.
Очевидно, что описанные выше параметры не работают с другими платформами, которые вы можетеИмейте в виду.
Существуют также различные наборы инструментов, которые были созданы на других платформах и были прилично перенесены на Windows.На ум приходят GTK, QT, FLTK и WxWindows.Я не использовал ни один из инструментов макета диалога / дизайнера приложений, которые работают с ними, и я вообще не использовал QT.Когда я в последний раз проверял QT, у него был специальный проход предварительной обработки для кода GUI.Кроме того, насколько я знаю, эти портативные наборы инструментов являются чистым ISO C ++.
В качестве реально существующего варианта можно программировать для протокола X Window System с использованием "libx".Насколько я знаю, это не связано с кодом C ++, отличным от ISO.