The Old New Thing

Practical development throughout the evolution of Windows.

Latest posts

Dec 6, 2023
Post comments count 2
Post likes count 4

In C++, how can I make a member function default parameter depend on this?

Raymond Chen

You can't, but you can fake it.

Dec 5, 2023
Post comments count 6
Post likes count 8

What was the code name for 64-bit Windows?

Raymond Chen

Sundown, which was a hidden jab at the competition.

Dec 4, 2023
Post comments count 5
Post likes count 4

What is a static chain pointer in the context of calling convention ABI?

Raymond Chen

Buried in the System V Application Binary Interface.

Dec 1, 2023
Post comments count 6
Post likes count 3

Why does the Windows Portable Executable (PE) format have both an import section and input directory?

Raymond Chen

They seem to be the same thing. Do we need both?

Nov 30, 2023
Post comments count 2
Post likes count 5

Why does the Windows Portable Executable (PE) format have separate tables for import names and import addresses?, part 2

Raymond Chen

Keeping read-only data separate from read-write data.

Nov 29, 2023
Post comments count 6
Post likes count 4

Why does the Windows Portable Executable (PE) format have separate tables for import names and import addresses?, part 1

Raymond Chen

Even though their lifetimes don't overlap, you sometimes need to go back in time.

Nov 28, 2023
Post comments count 8
Post likes count 3

A reported vulnerability about getting paid apps for free is really about paying for free apps

Raymond Chen

Try shopping around.

Nov 27, 2023
Post comments count 3
Post likes count 5

In Windows 3.1 and Windows 95, what is a “grabber”?

Raymond Chen

It grabbed your MS-DOS screen and put it into a window.

Nov 24, 2023
Post comments count 10
Post likes count 11

On harmful overuse of std::move

Raymond Chen

Initial excitement leads to overuse.