twin - Dave's Blog

Search
My timeline on Mastodon

Retweet of CompSciFact

2015 Oct 30, 12:44
Twins denied drivers permits because software couldn't tell their faces apart. http://wbay.com/2015/10/23/twins-denied-drivers-permit-because-dmv-cant-tell-them-apart/ …
PermalinkComments

Know Your Double - A doppelganger field guide by John Martz

2014 May 25, 1:43PermalinkCommentscomic humor twin

“Hey Pass Me a Beer” in the same vein as the...

2012 Jun 21, 2:55


“Hey Pass Me a Beer” in the same vein as the HIGH-FIVE! montages.

PermalinkCommentshumor video beer

Buzz by Mark Pilgrim from Buzz

2010 Mar 11, 3:33"The headers and captions on http://diveintohtml5.org/ use an open source font called "Essays 1743." The creator of that font was looking for a tutorial on HTML5, came across my site, and was pleasantly surprised to see his own work on prominent display. He now wants to update his font to include stylistically appropriate Unicode arrows, which I will then use with my captions.

The internet is awesome. It's so wonderfully intertwingled."PermalinkCommentshtml html5 mark-pilgrim font technical

HIGH-FIVE INAUGURATION! from Almost Twins

2009 Feb 5, 7:31Excellent retro intro! Be sure to watch the other two high-five videos too.PermalinkCommentshumor video obama awesome high-five funnyordie

makezine.tv: MAKE: technology on your time

2008 Dec 30, 1:03"Introducing Make: television, Coming in January 2009: A new national series from MAKE magazine, Twin Cities Public Television, and American Public Television"PermalinkCommentspbs tv make diy community hack via:boingboing

Human Mirror at Improv Everywhere

2008 Jul 7, 11:38Many sets of twins board a subway and act innocent forming a sort of mirror on the train.PermalinkCommentshumor prank video subway nyc performance-art via:boingboing

HIGH-FIVE! from Almost Twins

2008 Jan 13, 1:20This one goes out to Jon -- where ever he is (in Germany).PermalinkCommentshumor video funnyordie high-five

Wp64 Issues

2007 Aug 6, 3:43Miladin told me about the Visual Studio compiler's promising option Wp64 that finds 64bit portability issues when compiling in 32bit. If, for instance, you cast from a (long*) to a (long) you get a W4 warning. However, the #defines are still set for 32bit builds. This means that other parts of the code can make assumptions based on the #defines that are valid on 32bit but generate 64bit errors or warnings.

For instance, in winuser.h the public published Windows header file there's the following:
...
#ifdef _WIN64
...
WINUSERAPI
LONG_PTR
WINAPI
SetWindowLongPtrA(
    __in HWND hWnd,
    __in int nIndex,
    __in LONG_PTR dwNewLong);
...
#else  /* _WIN64 */
...
#define SetWindowLongPtrA   SetWindowLongA
...
#endif /* _WIN64 */
...
In 64bit everything's normal but in 32bit SetWindowLongPtrA is #defined to SetWindowLongA which takes a LONG rather than a LONG_PTR. So take the following code snippet:
...
LONG_PTR inputValue = 0;
LONG_PTR error = SetWindowLongPtrA(hWnd, nIndex, inputValue);
...
This looks fine but generates warnings with the Wp64 flag.

In 64 bit, p is cast to (LONG_PTR) and that's great because we're actually calling SetWindowLongPtrA which takes a LONG_PTR. In 32 bit, p is cast to (LONG_PTR) which is then implicitly cast to (LONG) because we're actually calling SetWindowLongA. LONG and LONG_PTR are the same size in 32bit which is fine but if you turn on the Wp64 flag there's a W4 warning because of the implicit cast from a larger size to a smaller size if you were to compile for 64bit. So even though doing a 32bit or 64bit compile would have worked just fine, if you turn on the Wp64 flag for 32bit you'd get an error here.

It looks like I'm the most recent in a list of people to notice this issue. Well I investigated this so... I'm blogging about it too!PermalinkCommentswp64 technical 64bit compiler c++ visual-studio setwindowlongptra
Older Entries Creative Commons License Some rights reserved.