*WORD

In times of 8-bit systems byte (octet) was used to denote processors data size. When 16-bit computers appeared, WORD was used for sizes same as size of processor’s data bus. At those times, one WORD was equal to two bytes.

Once 32-bit computing came around, choice needed to be made. Whether to re-use WORD (but to alter it’s 16-bit era meaning) or to make new unit. DWORD (double WORD) was born to signify this new bus width. On 64-bit computers, natural choice was QWORD (quadruple WORD).

Is OWORD (octal WORD) next?

Juni Vs By.hero

Illustration

I stumbled upon this video of Zerg vs. Zerg Starcraft match.

Until now, I though that this match-up cannot last more than ten minutes. Boy, I was wrong.

3-In-1

Illustration

I got Nivea Active 3 from my wife and I consider it ultimate product for men. It combines showering gel, shampoo and shaving cream. Not only that you solve almost all men’s hygienic needs (no toothpaste inside), you only need to remember to buy single product. That is precious.

While this is primary showering gel and pretty lousy as anything else, it is definitely something you want to take on trip with you.

If they only had bacon-flavored version…

Why ULONG Is 32-Bit Even on 64-Bit Windows

When you prepare C#'s DllImport functions, remember that if you see ULONG, you need to convert it as Int32 (more precise would be UInt32). Although one would assume that ULONG would be 64-bit on 64-bit systems, it is actually four bytes on both 32-bit and 64-bit systems.

Reason this happens is Microsoft’s decision to use LLP64 data model for Windows API. This was done in order to ease switch to 64-bits for C++ programs. All API calls that were done on 32-bit systems that had ULONG in it, will work same even in 64-bit world. Easiest change is one that requires no action.

If you really want something with 64 bits, use ULONGLONG (or LONGLONG). This one is eight bytes in both 32-bit and 64-bit environment.

Beware if you see pointer to ULONG. Even if ULONG is four bytes on 64-bit platform, pointer to it is eight bytes. As matter of fact, all pointers are eight bytes.