__ cdecl и __declspec путаница в соглашениях о вызовах

Я пишу DLL для стороннего приложения.Главный разработчик программного обеспечения упоминает, что приложение использует соглашение о вызовах __cdecl (/ Gd). Что мне нужно убедиться, что я использую это.

Кроме того, третья сторона предоставила мне скелет C ++ DLL, который экспортирует функции следующим образом:

#ifdef _EXPORTING
  #define DECLSPEC    __declspec(dllexport)
#else
   #define DECLSPEC    __declspec(dllimport)
#endif

#ifdef __cplusplus
   extern "C" {  
#endif

DECLSPEC int ICD_Create(char* id);
....
....

Я немного сбит с толку. Почему функции экспортируются с использованием соглашения __declspec вместо __cdedl ?? поддерживает ли __declspec _cdecl?

Спасибо.

7
задан Edgar Rokjān 21 November 2017 в 22:51
поделиться