Pour la convention, il y a explicitement des __stdcall, j'aurais tendance à mettre la même chose en Delphi, et comme le fait remarquer Paul, le générateur s'est un peu planté !
La question sur l'utilisation d'un int du C ou d'un int C++ semble avoir un début de réponse via la directive __cplusplus, si le code est conçu pour être compatible C++ en environnement Win32 (DLL oblige), ça devrait donc être de int 32 bit donc Integer serait approprié !
Maintenant, si le H est commun à différentes plateformes, ça devient plus compliquer car en C++, la taille du int dépend de l'architecture ciblé, on espérer que le H d'un DLL respecte les conventions Win32 !
C'est d'ailleurs pour cela que je préfère utiliser des types Windows (WORD, DWORD...) dans les H ou PAS de mes DLL, puisque de toute façon une DLL c'est uniquement pour Windows autant utilisé une convention commune à plusieurs langages, celle de l'OS !
@Dragnard, As-tu essayé les SmallInt ?
Est-ce mieux pire en SmallInt qu'en Integer ?
As-tu essayé le non signé comme Cardinal ou Word
Cette fonction __dxl_makeword est étrange, deux Word pour un constuire Un ???
Cette API est étrangement conçue, le type int généralisé sans préoccupation me gêne franchement !
C'est typiquement le genre de flou artistique qui me font douter de la rigueur des auteurs !
int __stdcall __dxl_makeword( int lowbyte, int highbyte );
devient
function __dxl_makeword(lowbyte: SmallInt; highbyte: SmallInt ): SmallInt; stdcall;
Perso, je l'aurais déclaré ainsi en C ou C++ pour GARANTIR le typage
unsigned short int __stdcall dxl_makeword(unsigned char lowbyte, unsigned char highbyte );
et ainsi en Delphi
function __dxl_makeword(lowbyte: Byte; highbyte: Byte): Word; stdcall;
Partager