Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Mikhail_K_
Beginner
98 Views

Confused about calling convention in IPP

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
98 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

Mikhail_K_
Beginner
98 Views

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

Henderson__Jim
Beginner
98 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.  

Pavel_B_Intel1
Employee
98 Views

Jim,

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

Pavel