After a lot of research (and swearing) I've managed to compile ooDialog and ooSQLite using VS 2012 with SP3 installed to support XP as target system. The compiles run with no apparent problems. And the resulting load modules run as expected on my Win7 system. But when I try it all on my older XP system it fails with the following:

AppName ooDialog.exe
AppVer: 4.2.4.9490
ModName: rexxapi.dll
ModVer: 4.1.3.9341
Offset: 00001efa

ooRexx is not preinstalled on my XP system so I carry over all of the following from the Win7 system to the XP system together with my app:

orexxole.dll
rexx.dll
rexx.exe
rexx.img
rexxapi.dll
rexxutil.dll
rxapi.exe  
rxwinsys.dll
ooDialog.cls
ooDialog.com
oodialog.dll
ooDialog.exe
oodPlain.cls
oodWin32.cls
ooSQLite.cls
oosqlite.dll
ooSQLite3.exe

Doing the same to another Win7 system without a preinstalled ooRexx works fine. So there seems to be some sort of incompatibility introduced between ooDialog and ooRexx that has been caused by the new compile. 

To activate the XP support in VS 2012 with SP3 I had to add the following before running the vcvarsall.bat:

@set INCLUDE=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Include;%INCLUDE%
@set PATH=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Bin;%PATH%
@set LIB=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Lib;%LIB%
@set CL=/D_USING_V110_SDK71_;%CL%
@set LINK=/SUBSYSTEM:CONSOLE,5.01 %LINK%
@"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat"

I suspect CL= and/or LINK= is causing this but I'm unable to say why. And btw, all of the above is 32-bit.

A helpful hand is appreciated.

Staffan