beta page 2 - Dave's Blog

Search
My timeline on Mastodon

WikipediaVision (beta)

2007 Oct 30, 12:07A map displaying who is editing what and from where in real-time on Wikipedia.PermalinkCommentswikipedia ajax mashup google map visualization real-time

RSSxl Beta - RSS Generator

2007 Oct 24, 3:26Convert HTML into RSS with some predefined strings to look for.PermalinkCommentsfeed rss tool free html convert

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

First look: Safari 3 beta on Windows vs. Firefox 2 and IE7

2007 Jun 17, 11:59I expected more from Safari -- more like Opera. There weren't many exciting features to convert me.PermalinkCommentsapple article safari internet browser arstechnica review

Episode 1 | You Don't Know Jack - BETA

2007 Mar 5, 7:34The game 'You Don't Know Jack' now available on the web (in a limited fashion). I remember playing this game way back when. Fun!PermalinkCommentsflash games quiz ydkj

Microsoft Office Live Signup

2006 Dec 20, 5:53Get a free website (including free domain) through Office Live Beta!PermalinkCommentsmicrosoft office office-live beta free website webpage domain dns

You Don't Know Jack - BETA | The Trivia Game Where High Culture and Pop Culture Collide

2006 Dec 20, 1:44Remember "You Don't Know Jack" the computer trivia game (on a computer not about computers). Well its still awesome and hilaroius.PermalinkCommentsflash game humor ydkj you-dont-know-jack

Thoughts on Polytope Tetris

2006 Nov 19, 9:25I've had a few thoughts recently on Polytope Tetris. Constructive thoughts: Deconstructive thoughts: PermalinkCommentsproject polytopetetris

TandartsenPagina.be - een betaalbare website voor tandartsen (http://org.be)

2006 Mar 22, 1:25Example of a valid domain name with a well known TLD ("org") followed by a two letter country TLD ("be"). The domain in this case should be "be".PermalinkCommentsdns dns-example language internet domain

Download details: Internet Explorer Developer Toolbar Beta

2006 Mar 21, 6:59PermalinkCommentsdevelopment html ie tools web software dotnet toolbar

Internet Explorer 7: Beta 2 Preview - released on March 20th - checklists

2006 Mar 20, 5:06PermalinkCommentsie ie7 web internet beta tools free
Older EntriesNewer Entries Creative Commons License Some rights reserved.