Author Archives: Ofek Shilon

Windows Internals Course by Sela College

A word just for Israeli readers: Sela College has agreed to open a Windows Internals Class in Ramat-Gan. It’s a 5 day course, every Sunday starting June 24. It’s obviously based on the identically named book, and the syllabus is … Continue reading

Posted in Uncategorized | Leave a comment

QuickTip: Toggle disassembly with Ctrl+F11

Short post today. For a long while I’ve been switching to disassembly with Alt+8, as appears under the Debug/Windows menu: – and back with Ctrl+Alt+0, as appears under View menu: A while ago I discovered there’s a more pleasant shortcut, … Continue reading

Posted in Tips, Visual Studio | Leave a comment

Viewing types, part 3: Exceptions

Last time a way was shown to use internal RTTI mechanics to view C++ type names without direct debugger aid. There is one place in particular where such type names carry substantial information, and that is c++ exceptions. These can … Continue reading

Posted in Debugging, VC++ | 1 Comment

Viewing types, part 2: the manual way

Compiling with /d1reportAllClassLayout, even an empty file, dumps many compiler-intrinsic types. Six of these are interesting in the present context:  _PMD, _TypeDescriptor, _s__RTTIBaseClassDescriptor2, _s__RTTIBaseClassArray, _s__RTTIClassHierarchyDescriptor, and _s__RTTICompleteObjectLocator. Most of this machinery exists solely for multiple inheritance, and virtual inheritance in … Continue reading

Posted in Debugging, VC++ | 3 Comments

Viewing types, part 1: The Normal way

Suppose C derives from B, which derives from A: Now create A-pointers which point to children types, B and C, and watch them in VS: The types in square brackets are the most derived types of the referenced objects. How … Continue reading

Posted in Debugging, VC++ | Leave a comment

On AFX_MODULE_STATE, Appendix

My recent AFX_MODULE_STATE plunge was driven by some real world problems. In parallel to the write-up I mailed the current MFC chief maintainer, Pat Brenner – who directly invited such user interaction. The correspondence that ensued makes semi-official claims that … Continue reading

Posted in MFC | 1 Comment

Microsoft’s Known Issues Policy

As far as I can tell, there isn’t anything there you might seriously call a policy. Well there is an old ‘knowledge base’ searchable either via a solution center or technet. It includes, however, only known issues that MS support … Continue reading

Posted in Visual Studio | Leave a comment

On AFX_MODULE_STATE, or – Avoiding afxCurrentInstanceHandle Asserts, Part 2

(Part 1.) The AFX_MANAGE_STATE macro is an iceberg-tip of some heavy machinery, whose documentation leaves much to be desired. Here’s an attempt to fill in some more blanks. Mid-Depth Dive Answering a question raised at part 1, the basic statement … Continue reading

Posted in MFC | Leave a comment

On AFX_MODULE_STATE, or – Avoiding afxCurrentInstanceHandle Asserts, Part 1

All too often I see one of these asserts fire: These are coded in afxwin1.inl, and are part of the MFC high level accessors: If these asserts fire for you too, there’s a good chance you’re missing some afx module … Continue reading

Posted in MFC | Leave a comment

RGB vs. BGR in Bitmaps

What is the channel order in bitmap pixels? Does the R channel occupy the least- or most- significant byte? Ah, the answer to this simple question held me back for nearly a day while debugging some image processing code. MSDN, … Continue reading

Posted in Win32 | Tagged , | 2 Comments