Customized Dynamic Linking

Some applications have a few internal modules and Intel IPP code needs to be shared by these modules only. In this case you can use customized dynamic linking, where the customized dynamic link library (DLL) contains only the portion of Intel IPP functions that the application uses.

To build a customized DLL,

  1. List all Intel IPP functions you need to use. Copy the function protocols from the corresponding header file (for example, ipps.h) and paste them into your custom  mydll.h.
  2. In  mydll.c, write a DLL initialization function called DllMain and place a call to the function ippStaticInitBest() in it.
  3. Also, in mydll.c, write a function table that includes all required Intel IPP functions. You can also add more functions there, if needed.
  4. Compile mydll.c as a dynamic link library and link it against ippsemerged.lib, ippsmerged.lib, and ippcorel.lib. The import library mydll.lib will be generated automatically.

For a complete example of a customized DLL, see the folder <ipp_install_path>/tools/customdll.

Once you have mastered this process, you can do more complex things such as: 

  • merge other shared code into this DLL, or
  • write function wrappers to link only to a subset of the processor optimizations.