Unresolved external symbol error occurring only in 64-bit mode and not in 32-bit build

后端 未结 4 956
慢半拍i
慢半拍i 2021-01-12 13:04

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\

相关标签:
4条回答
  • 2021-01-12 13:43

    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.

    0 讨论(0)
  • 2021-01-12 13:48

    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

    0 讨论(0)
  • 2021-01-12 14:02

    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 :)

    0 讨论(0)
  • 2021-01-12 14:03

    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!

    0 讨论(0)
提交回复
热议问题