All Projects → yottaawesome → programming-windows-5th-edition

yottaawesome / programming-windows-5th-edition

Licence: other
Unofficial source code repo for Charles Petzold's Programming Windows 5th Edition.

Programming Languages

c
50402 projects - #5 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to programming-windows-5th-edition

Api-Break-for-x64dbg
x64dbg plugin to set breakpoints automatically to Win32/64 APIs
Stars: ✭ 136 (+385.71%)
Mutual labels:  win32, win32api
Reactos
A free Windows-compatible Operating System
Stars: ✭ 10,216 (+36385.71%)
Mutual labels:  win32, win32api
wcecl
Allows to run Windows CE applications on Windows!
Stars: ✭ 54 (+92.86%)
Mutual labels:  win32, win32api
Pure Bash Bible
📖 A collection of pure bash alternatives to external processes.
Stars: ✭ 28,109 (+100289.29%)
Mutual labels:  book, reference
creating-controls-in-assembler
Gitbook: https://mrfearless.gitbooks.io/creating-controls-in-assembler
Stars: ✭ 20 (-28.57%)
Mutual labels:  win32, win32api
Theoretical Physics
Source code of the Theoretical Physics Reference online book
Stars: ✭ 163 (+482.14%)
Mutual labels:  book, reference
Pure Sh Bible
📖 A collection of pure POSIX sh alternatives to external processes.
Stars: ✭ 3,246 (+11492.86%)
Mutual labels:  book, reference
Ayase
🥥 Control everything by keyboard. Built for hackers and the blind.
Stars: ✭ 53 (+89.29%)
Mutual labels:  win32, win32api
XScreenSaverWin
XScreenSaver for Windows
Stars: ✭ 76 (+171.43%)
Mutual labels:  win32, win32api
SoftwareHelper
This is a windows app shortcut widget 🔨
Stars: ✭ 122 (+335.71%)
Mutual labels:  win32
rht-labs-library
This is a list of books in our library or which we recommend you read.
Stars: ✭ 36 (+28.57%)
Mutual labels:  book
CherryLib
Win32/MFC UI Control, Live Update, Utility Library
Stars: ✭ 19 (-32.14%)
Mutual labels:  win32
cn-ref
A collection of tools and references around container networking
Stars: ✭ 80 (+185.71%)
Mutual labels:  reference
Book
Metaprogramming. Multi-paradigm approach in the Software Engineering.
Stars: ✭ 116 (+314.29%)
Mutual labels:  book
planning-wiki
By the community, for everyone. Planning.wiki is the online guide to AI Planning
Stars: ✭ 54 (+92.86%)
Mutual labels:  reference
gitbook-plugin-rss
RSS for your gitbook
Stars: ✭ 19 (-32.14%)
Mutual labels:  book
DLL-Injector
Inject and detour DLLs and program functions both managed and unmanaged in other programs, written (almost) purely in C#. [Not maintained].
Stars: ✭ 29 (+3.57%)
Mutual labels:  win32
Hello-GLUT
A very simple "Hello World!" GLUT application demonstrating how to write OpenGL applications in C with MinGW and MSVC.
Stars: ✭ 27 (-3.57%)
Mutual labels:  win32
scalaui
Scala Native GUI framework based on libui
Stars: ✭ 56 (+100%)
Mutual labels:  win32
alkitab-api
📖 Bible API for everyone
Stars: ✭ 88 (+214.29%)
Mutual labels:  book

Programming Windows 5th edition source code

Introduction

Source code contained in Charles Petzold's excellent Programming Windows 5th edition. No representation is made that the source code belongs to me, it's simply reproduced here for convenience (so you don't need to dig up the physical media of the book) and remains the copyright of Charles Petzold. Consult readme.txt (the TXT that came with the book) for additional information.

Building

You'll need Visual Studio 2022 with the Desktop development with C++ workload installed. Some samples use MFC, so you'll need to install the C++ MFC for latest v143 build tools (x86 & x64) Visual Studio component to build them (MFC is not installed by default in newer versions of Visual Studio). You should then be able to open any of the VS solution files and immediately build them. It may be possible to open the VS solution files using older (but still modern) versions of Visual Studio, but I've not tested this.

Changes

All samples have been updated to use Visual Studio 2022 and retargeted to use the latest Windows SDK. An invalid free that was causing crashes in Chapter 9's Environ sample has been fixed. The old *.dep, *.dsw, and *.dsp files can be found in the earlier commits if you need them. That being said, the source code is two decades old and has been minimally retouched here. If you're after a more thorough overhaul of the codebase, see here, or do a search on GitHub.

Considerations

Most samples still function (credit to Microsoft and their emphasis on backwards compatibility), but some do not, particularly in Chapter 16 due to the requirement of hardware with 256-bit display pallete. Needless to say, decades after these samples were written, such hardware now exists mostly as a historical note of a bygone era in computing.

Some samples generate deprecation and security warnings upon compilation, and I recommend you heed those warnings if you intend to use any code in production. Remember that this is decades old Win32 code -- depending on what you're trying to do, more modern approaches such as C++/WinRT, wxWidgets, Qt, Ultimate++, Boost, POCO C++, or newer additions to the C++ standard library (C++11 onwards) may be more appropriate.

When using any Win32 code from this repo in production, always consult the Windows API Index for relevant and updated API usage notes, as some APIs may have since been deprecated or had their behaviour modified in newer versions of Windows.

Additional resources

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].