Next: Disabling SxS
From: "Allan Bruce" <abruceA T on 18 Feb 2005 15:29 "Stephen Kellett" <snail(a)objmedia.demon.co.uk> wrote in message news:Pk8MUXDkYcFCFwYV(a)objmedia.demon.co.uk... > In message <111b3i7n5u7gl15(a)corp.supernews.com>, Allan Bruce > <abruceA(a)T.csd.abdn.ac.uk.?.?.?.invalid> writes >>> Take a look at all of your defines, for everything. I remember porting >>> to >>> the IA64 and we had this problem. Turned out that somewhere a _X86_ had >>> crept in for one file. Don't know how it happened etc, etc. But it >>> caused >>> this problem. > >>windows.h defines _X86_ so I tried adding #define _AMD64_ before including > > Thats not what I meant. The solution to my problem was NOT by adding > defines (as you have done), but by looking for _X86_ not in the source or > headers, but in the makefile/project file. > > Given that your demonstration of the bug is so trivial (excellent you > could define it so neatly!) I guess the other thing to check is that none > of the files in your Visual Studio environment are used by the compiler. > *ALL* of the header, lib, compiler and linker files should be coming from > the AMD64 directories. Be sure to do a full rebuild after moving all the > AMD64 directories to the top of the directories list in Visual Studio. > > Note I haven't worked with the AMD64 version only the IA64 version, > although I'd expect them to be essentially the same. My experience was > whilst porting a 2,000,000 line C++ application to IA64. > > Stephen I tried using a script from the Platform SDK to set the build environment to WinXP 64-bit and this seems to help however now I get the following error: Project : error PRJ0002 : Error result 128 returned from 'e:\Program Files (x86)\Microsoft Visual Studio 8\VC\bin\x86_amd64\link.exe'. Allan
From: Jussi Jumppanen on 18 Feb 2005 21:54 Allan Bruce wrote: > this is located in <windows.h> however: > > #if !defined(_68K_) && !defined(_MPPC_) && !defined(_X86_) && > !defined(_IA64_) && !defined(_AMD64_) && defined(_M_IX86) > #define _X86_ > #endif Assuming these are target processors: _68K_, _MPPC_, _X86_, ...... To me this preprocessor read: if no traget has been specified then assume the target is _X86_ > This is the line causing the problems but I cannot find a > solution :-( What about defining the traget in the project settings? Jussi Jumppanen Author of: Zeus for Windows (New version 3.94 out now) "The C/C++, Cobol, Java, HTML, Python, PHP, Perl programmer's editor" Home Page: http://www.zeusedit.com
From: "Allan Bruce" <abruceA T on 19 Feb 2005 04:30
"Jussi Jumppanen" <jussij(a)zeusedit.com> wrote in message news:4216AA4A.2A19(a)zeusedit.com... > Allan Bruce wrote: > >> this is located in <windows.h> however: >> >> #if !defined(_68K_) && !defined(_MPPC_) && !defined(_X86_) && >> !defined(_IA64_) && !defined(_AMD64_) && defined(_M_IX86) >> #define _X86_ >> #endif > > Assuming these are target processors: > > _68K_, _MPPC_, _X86_, ...... > > To me this preprocessor read: > > if no traget has been specified then assume the target is _X86_ Thats what it looks like to me too > >> This is the line causing the problems but I cannot find a >> solution :-( > > What about defining the traget in the project settings? > > Jussi Jumppanen > Author of: Zeus for Windows (New version 3.94 out now) > "The C/C++, Cobol, Java, HTML, Python, PHP, Perl programmer's editor" > Home Page: http://www.zeusedit.com This has the same effect as #define _AMD64_ before including windows.h but a lot neater. With this I get the error: E:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK\Include\WinNT.h(9289) : error C3861: '__readfsdword': identifier not found I had a look at WinNT.h and __readfsdword is identified in WinNT.h itself, so I have no idea what it is complaining about Allan |