Category: C++

22 Nov

Porting .NET app to Vista.. DEP strikes!

STOP

An interesting issue happened these days when I tried to port some apps to Vista.

Basically all .NET apps compiled with Visual Studio 2005/2008 are marked “NX compatible” by default. If your .NET app uses an incompatible DLL or COM object, the app will crash. What I found funny was that the message was a standard access violation error instead of a more specific DEP error.

Debugging it was not easy: I was unable to step through the code in VS2005 and using WinDbg wasn’t much of help too, except that the line where it crashed was something like a mov [esp+24h], constant with ESP well within limits — an instruction which should not generate an access violation exception given the current ESP value.  At that point I was starting to think that my “attempt to read or write protected memory was, in fact, something else.

Luckily my mind went to DEP and in less than 1 minute of Google search I was able to find this link with a good solution which, for the lazy and to preserve history is to add the following two lines as a post-build step.

call “$(DevEnvDir)..\tools\vsvars32.bat”
editbin.exe /NXCOMPAT:NO $(TargetPath)

I tried, without much faith, and it worked. And the C# app was finally working on Vista. And while you are fuddling with post-builds, go on and enable LARGEADDRESSAWARE while you are at it. 32bit users will thank you.

16 Jun

ScummVM DS Patches – version 4

(Quick download links : .NDS builds or .DS.GBA builds, modified sources here, SourceForge patches here)

I’ve patched ScummVM DS once again..

See here for more details, versioning, how, why, what, which, who..

Changes in ScummVM/DS 0.11.1.MMP4 (.NDS builds or .DS.GBA builds):

  • All previous changes
  • Fixed a bug with mouse icon
  • Attempt to show mouse cursor on upper screen also when LCDs are swapped (sometimes it fails to be in the correct position but it covers most cases).

Be vigilant.

15 Jun

ScummVM DS Patches – version 3

(Quick download links : .NDS builds or .DS.GBA builds, modified sources here)

I’ve patched ScummVM DS once again..

See here for more details, versioning, how, why, what, which, who..

Changes in ScummVM/DS 0.11.1.MMP3 (.NDS builds or .DS.GBA builds):

  • All previous changes
  • ScummVM Build G (NDS only – for Lure of the Temptress… untested yet and the main site does not report it as working.. so state is unknown.)
  • Hover-only mouse option – this will simulate the job done by a mousepad on a laptop
  • Show cursor on aux screen – this will show the cursor on the secondary screen if the screens are not swapped (together with Hover-only, it provides an UI to ScummVM more similar to the classical one found on laptops).

Now I have to go.. Kyrandia needs my help ;)