QUOTE(wingrunr21 @ Mar 3 2006, 06:36 PM)
I'm pretty sure that you can't compile in 64-bit with the Express editions.
Oh, fortunately YOU CAN perfectly compile 64-bit from the IDE, debug, and even USE THE ASSEMBLER WITH ASSEMBLER DEBUGGING in Visual C++ Express 2005, provided that you have the right installation of the PSDK (Platform Software Development Kit).
Let's say that you have the PSDK already installed, and that you installed VC++ Express 2005.
Just like another fellow says in this thread, all you need to do is to open one of the environments that target 64 bits in the PSDK. From that command line, a simple "C:\.....\VCExpress /useenv" will start a VC++ IDE ready for 64 bit work, even though it is going to say Win32 all over the place. Do not believe that, and relax, because the IDE is going to use the CL and Linker for 64 bits.
You may have the problems of
Linker Tools Error LNK2001
'unresolved external symbol __security_cookie '
Linker Tools Error LNK2001
'unresolved external symbol __security_check_cookie '
For that, only include the library bufferoverflowU.lib according to
what this guy saysUse the debugging options, debug a program, and open the "disassemble" and you'll see that you're AMD64.
To use also the assembler, in the PSDK it comes the ml64.exe that you need. You may trick the IDE into assembling AMD64 by copying in the same folder the ml64.exe file is to the name ml.exe, and do the following:
[Let's say you want to simulate the inline assembler: You can compile the files with assembly listing on (select in the C/C++ project options the Assembly With Source Code (/FAs)), then, you can remove the C/C++ source file from the project, and then] include the .asm [that the compiler generated], and when you try to include a .asm, VC++ will say that there is a default rule to manage .asm files. That default rule is basically Ok because ml.exe and ml64.exe have about the same command line options.
Then, when you do a build, the IDE invokes the ml.exe (which in reality is the file you copied ml64.exe) and assembles just fine.
Then, you can even have assembler source debugging just like in 32 bits.
Hope this helps
Try a reply if this message was good to you