{"id":16832964,"url":"https://github.com/dbjdbj/windows_plus_plus","last_synced_at":"2025-03-18T02:19:22.587Z","repository":{"id":136463677,"uuid":"444554249","full_name":"DBJDBJ/windows_plus_plus","owner":"DBJDBJ","description":"This is an attempt in refactoring 1992 \"Windows++\" by Paul Di Lascia","archived":false,"fork":false,"pushed_at":"2022-01-06T13:37:58.000Z","size":357,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-24T09:41:36.709Z","etag":null,"topics":["cplusplus","framework","library","win32","windows"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DBJDBJ.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-04T20:28:41.000Z","updated_at":"2022-01-06T13:38:01.000Z","dependencies_parsed_at":"2023-05-26T11:16:09.153Z","dependency_job_id":null,"html_url":"https://github.com/DBJDBJ/windows_plus_plus","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DBJDBJ%2Fwindows_plus_plus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DBJDBJ%2Fwindows_plus_plus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DBJDBJ%2Fwindows_plus_plus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DBJDBJ%2Fwindows_plus_plus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DBJDBJ","download_url":"https://codeload.github.com/DBJDBJ/windows_plus_plus/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244141479,"owners_count":20404837,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cplusplus","framework","library","win32","windows"],"created_at":"2024-10-13T11:50:58.369Z","updated_at":"2025-03-18T02:19:22.560Z","avatar_url":"https://github.com/DBJDBJ.png","language":"C++","readme":"\n## This is an attempt in refactoring 1992 [\"Windows++\"](https://web.archive.org/web/20090606220454/http://www.dilascia.com/wpp.htm) by [Paul Di Lascia](https://en.wikipedia.org/wiki/Paul_DiLascia)\n\n**What is built and ad-hoc tested to date (2022-01-05) is all in the sample folder:**\n\n- samples\n  - draw\n  - hello \n  - launch\n  - mandel\n  - medit (has redraw issues)\n  - memtest\n  - mkc\n  - people\n  - randrect\n  - toe\n  - winedit\n\nHow does that look? Archaic. Is it working? Very much so. Simple, small and very functional Win32 C++ framework. Pretty clean design and implementations. Almost no macros. Perfectly usable.\n\n- This is kind-of-a [\"orthodox C++\"](https://gist.github.com/bkaradzic/2e39896bc7d8c34e042b) in here. Although Orthodox C++ term was invented years (decades?) after Windows++. In here it is simply ancient C++. \n- MS C/C++ 10.0 or greater was required. That is old.\n- In here there is also, no std lib whatsoever. No C++ exceptions.  This C++ dialect in here is perhaps even predating C++03.\n- For refactoring we used C++14 (because that is Visual Studio 2019 default).\n  - Correction: `samples\\people` is using two `std::` headers `fstream` and `iomanip`\n- Win32 is used as much as possible. \n  - CRT and [UCRT](https://stackoverflow.com/questions/67848972/differences-between-msvcrt-ucrt-and-vcruntime-libraries) usage, will be eventually completely removed.\n\n\n### Refactoring Strategy\n\n1. Not using the make files, only Visual Studio solution and projects\n1. Paul has originally built a DLL. \n   1. In 2021 we know for various good reasons C++ and DLL's don't work well together.\n   2. thus a lib is made\n2. First cycle consist of creating Visual Studio (VS) projects; one for each sample.\n   1. Each VS project is simple Windows App.\n   2. Framework is referenced (used) as a lib project\n3. Second cycle will be refactoring the framework into headers only\n   1. Then using those headers into samples\n4. Minimize of completely remove UCRT usage\n   1. `dbjwin_strsafe.h` is a step in that direction\n\n### Usage\n\n   1. Windows++ is built as a static lib\n      1. named `winplusplus.lib`\n      2. include as \n   ```cpp\n   #include \u003cwinplusplus/wpp.h\u003e\n   // optional; if graphics++ are required\n   #include \u003cwinplusplus/gpp.h\u003e\n   ```\n   1. **Problem**: RC files do include `wpp.h` and `wprint.dlg` by using the relative path\n      1. obviously `RC_INVOKED` parts will be taken out of `wpp.h`\n\n### Details for the codenauts\n\nGenerally look into project properties. In particular:\n\n1. \"Windows++\" was not UNICODE enabled. Every SAMPLES Project character set must be set to: \"Not Set\"\n1. that is `_UNICODE` and `UNICODE` must be **undefined**\n   2. for some reason `const` had not type e.g.: `const whatever = 42`\n   1. I can not recall that was a legal C++ syntax in the past?\n   2. so we changed all of them.\n\n\n---\nStarted 2022 January 4, by dbj at dbj dot org","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbjdbj%2Fwindows_plus_plus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdbjdbj%2Fwindows_plus_plus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbjdbj%2Fwindows_plus_plus/lists"}