I have a VC++ code (built using VS2008), which makes use of some static libraries (*.lib files linked statically during compile time).
For ease of understanding let\
That fatal error LNK1112 indicates that you are indeed linking something in 32-bit mode when trying to create a 64-bit executable.
The image 2) shows only some but not all projects in 64-bit mode. This sounds like trouble!
Perhaps the problem lies in your LIB directory? Usually my projects (VS2010 here) differ at:
Project Properties -> VC++ Directories -> Library Directories
which points to lib32
or lib64
directory depending on the target architecture.
I think I figured out what the problem was.
AAA.EXE was using Logger.lib static library which in turn was calling the functions in WTTLog.DLL. And this Microsoft DLL "WTTLog.DLL" is a 32-bit DLL.
That is the reason it wasn't working for me in 64-bit AAA.EXE.
So I did find the answer to the question I raised in this thread i.e how to link 64-bit libraries in a 64-bit application. BUt still this leaves me with one more question,
"Where do i find the 64-bit version WTTLog.lib and "wttlogger.h" for WTTLog.DLL. For this I have created a new thread because, the problem is different now.
How to get the WTTLog.lib and wttlogger.h header file for 64-bit version of WTTLog.DLL
Old Thread, I know, but found that I had to add "Explicit" exports to the DEF file to get it to work. Must be that the 32-bit was implicitly adding, but the 64 was not. Hope this helps someone :)
From the looks of it, you're only changing half of your projects to x64
and leave the rest to Win32
. Since you don't show your project's dependencies, its hard to guess if that's a problem or not ... in any case, for compilation to succeed you'll have to switch all of the dependent projects (libs) to x64!