Showing results for 
Search instead for 
Did you mean: 

can I use ippcore.lib (32-bit version) in a x64 project

I am using the 32-bit versions of ippcore.lib in my x64 application project (VS Studio 2008), but I have this link error:

error LNK2019: unresolved external symbol ippStaticInitBest referenced in function .......

Please help me, please !

0 Kudos
2 Replies
Valued Contributor II

Let me answer your question in the'Post Title':

>> Can I use ippcore.lib (32-bit version) in a x64 project?

No. If you want to build a 64-bit applicationan'ippcore64.lib' has to be used in a x64 project.

Best regards,

PS:Here is some historical background ( if interested ):

This is because you can't "mix" 32-bit and 64-bit modules ( executablesand dlls )togetherin one
application. Since 'ippcore.lib' is the import library for32-bit applications a 32-bit'ippcore.dll' will
be loaded.

This is a very old story going back to 1992-1993when Microsoft released Win32s extention for a 16-bit
Windows 3.1 operating system. It was an awesome upgrade since it allowed to changememory

from 16-bit ( 16:16 )to32-bit ( 0:32 )

and as soon as Win32s extention was installed Windows 3.1could not be called any longeras a16-bit
operating system!

On Windows 3.1 the Win32s extensionallowed to execute 32-bit and 16-bit applications. But, it created
lots of "spin-off" problems. Software developers wanted touse 16-bit and 32-bit modules together,in one
address space, like:

Use Cases 1 & 2:
16-bit applicationattempts to load\use a 32-bit dll
32-bit application attempts to load\use a 16-bit dll

In order to satisfy a growing demand Microsoft invented three different "thunk" techniques and they
allowed to do some "magic". It was possible to "mix" 16-bit and 32-bit modules butall three "thunk"
techniques were incompatible because theywere designedfor different operating systems, Windows 3.1,
Windows 95 and Windows NT3.x.

Here are two more Use Casesfor 32-bit and 64-bit modules on a 64-bit operating system.

Use Cases3 & 4:
32-bit applicationattempts to load\use a 64-bit dll
64-bit application attempts to load\use a 32-bit dll

To summarize everything:

Use Cases 1 & 2 and Use Cases 3 & 4 arenotgoing to work without special "magic" techniques.

0 Kudos

Many Thanks Sergey for the answer, and also for the history (101) lesson, about the MicroSoft.
0 Kudos