06-10-2008 04:44 AM
06-13-2008 04:09 AM
06-13-2008 04:42 AM
Calling convention: most likely stdcall
@benj wrote:
Bonjour,
J'ai créé une dll de test avec VB6.0 (une vrai dll, pas une dll ActiveX) que j'arrive à appeler avec un autre prog VB mais pas avec LV.
Le message est le suivant :
LabVIEW : Une exception a eu lieu dans le code externe appelé par une fonction d'appel de DLL. Ceci peut avoir corrompu la méloire de LabVIEW. Enregistrer tout travail en cours dans un nouvel endroit et redémarrez LabVIEW.
Le VI "test_utilisation_dll.vi" s'est arrêté au niveau de Appeler une fonction d'une DLL 0xC44 du sous-VI "test_utilisation_dll.vi"
Je pense qu'il s'agit d'une histoire de convention d'appel mais j'ai un peu tout essayé. A quoi correspond ce code d'erreur hexa ?
Que dois-je utiliser :
Convention C ou StdCall(WINAPI) ?
Passage par valeur ou pointeur ?
format de string : C, pascal, Handle ?
La fonction VB est la suivante :
function_chaine(chaine_in as string) as string
Elle est sensé retourner une chaine qui est la concaténation de la string en paramètre avec elle même.
J'ai le même problème avec une deuxième fonction de la DLL qui est la suivante :
function_numérique(num_in as double) as double
Elle est sensé retourner un nombre qui est le double du nombre entré en paramètre
Enfin, est t'il possible de faire appel à une fonction dans une dll qui retourne un tableau ? Quand on déclare une fonction d'une dll dans LV, on a uniqueent le choix entre numérique, chaîne et void pour type le retour...
Merci de votre aide,
Benjamin