Conversion de type c pour une utilisation de dll VBA
Conversion de type c pour une utilisation de dll VBA - VB/VBA/VBS - Programmation
MarshPosté le 11-08-2010 à 14:44:39
Bonjour,
J'ai une API à ma disposition. Celle-ci possède diverses DLL. J'ai un problème avec la définition de prototype pour appeler les fonctions des dll depuis VBA, en particulier pour convertir certains types C en VBA. donc voici ma fonction en C.
Code :
int foo(ComPortList* Liste)
struct ComPortList{
char name[8];
ComType type;
};
enum ComType{
COM_USB
COM_SERIAL
};
En vba j'en suis arrivé à cela.
Code :
Public Enum ComType
COM_SERIAL
COM_USB
End Enum
Private Type ComPortList
type As ComType
Name As String * 8
End Type
Je n'arrive pas à convertir l'énumération de la structure en une forme acceptable par vba qui puissent être compréhensible par la dll. En créant un type avec une enumération du type VBA excel plante lors de l'appel de la fonction et lorsque je ne met pas une énumération mais un autre type (Integer, Boolean), la fonction plante pas Excel, mais les résultats se trouvant dans la liste sont complétement erroné (artefact dans la chaîne de caractère).
Marsh Posté le 11-08-2010 à 14:44:39
Bonjour,
J'ai une API à ma disposition. Celle-ci possède diverses DLL. J'ai un problème avec la définition de prototype pour appeler les fonctions des dll depuis VBA, en particulier pour convertir certains types C en VBA. donc voici ma fonction en C.
En vba j'en suis arrivé à cela.
Je n'arrive pas à convertir l'énumération de la structure en une forme acceptable par vba qui puissent être compréhensible par la dll. En créant un type avec une enumération du type VBA excel plante lors de l'appel de la fonction et lorsque je ne met pas une énumération mais un autre type (Integer, Boolean), la fonction plante pas Excel, mais les résultats se trouvant dans la liste sont complétement erroné (artefact dans la chaîne de caractère).