Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

Confused about calling convention in IPP

Mikhail_K_
Beginner
1,016 Views

Hi,

Default convention is stdcall, but the DLL's have cdecl symbols?

What would be the easiest way to make a custom dll with _name@bytes decoration? Without wrappers?

Thanks,

MK

0 Kudos
4 Replies
Igor_A_Intel
Employee
1,016 Views

Hi Mikhail,

Where did you find public (I mean symbols, that are defined in the public IPP headers) cdecl symbols in IPP DLLs? Just have a look at the ippdefs.h header, at the definition of IPPAPI macro, that is used for declaration of all public IPP APIs:

#if !defined( IPPAPI )

  #if defined( IPP_W32DLL ) && (defined( _WIN32 ) || defined( _WIN64 ))
    #if defined( _MSC_VER ) || defined( __ICL )
      #define IPPAPI( type,name,arg ) \
                     __declspec(dllimport)   type __STDCALL name arg;
    #else
      #define IPPAPI( type,name,arg )        type __STDCALL name arg;
    #endif
  #else
    #define   IPPAPI( type,name,arg )        type __STDCALL name arg;
  #endif

#endif

it means that all IPP APIs use stdcall convention.

regards, Igor

0 Kudos
Mikhail_K_
Beginner
1,016 Views

Sorry, I expected to see _name@bytes decoration like in MKL for stdcall functions there...

0 Kudos
Henderson__Jim
Beginner
1,016 Views

I am attempting to link the IPP libraries into an application built using the MinGW 64-bit toolchain v5.3 under Windows 10.  Applications built with this toolchain which include the IPP headers fail to link, since the generated code assumes the IPP DLL export functions will be decorated using _name@bytes decorations. 

Can anyone provide a .def file which provides the necessary decoration aliases?  I request that Intel incorporate the alias export functions in future versions of the DLL or provide a .def file which provides such decorated aliases.  

0 Kudos
Pavel_B_Intel1
Employee
1,017 Views

Jim,

could you provide some example of link line and errors strings? IPP DLL's are standard, I cannot understand the problem.

Pavel

0 Kudos
Reply