Bonjour,
Je développe une petite application en VB (VB 2005 Express) qui doit utiliser une librairie permettant la communication avec un module USB - Bus CAN. Cette librairie est fournie avec le matériel (PEAK system) et le fichier de déclaration en VB.
Lors des premiers essais, la librairie se charge correctement, et je peu en utiliser les fonctions, mais lorsque j'arrête le programme en cours d'exécution (arrêt du debogage), au lancement suivant VB sort une exception sur la première fonction de la librairie (INIT_Can(...)):(Je signale que j'ai placé la librairie (pcan_usb.dll) dans le répertoire C:\WINDOWS\SYSTEM\)Impossible de charger la DLL 'pcan_usb': Une routine d'initialisation d'une librairie dynamique (DLL) a échoué. (Exception de HRESULT : 0x8007045A)
Je présume que cela vient du fonctionnement même de la librairie fournie :
1. Il faut initialiser le module USB : CAN_Init(CAN_BAUD_50K, CAN_INIT_TYPE_ST)2. Utiliser les différentes fonctions de la librairie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Public Declare Function CAN_Init Lib "pcan_usb" (ByVal wBTR0BTR1 As Integer, ByVal CANMsgType As Integer) As Long
3. Arrêter le module USB : CAN_Close()J'ai l'impression que la librairie "traîne" toujours en mémoire après l'arrêt du debogage, et qu'il m'est impossible de la décharger car je n'ai pas executé la fonction CAN_Close().
Code : Sélectionner tout - Visualiser dans une fenêtre à part Public Declare Function CAN_Close Lib "pcan_usb" () As Long
1. Y-a-t'il un moyen de décharger (ou d'arrêter) une librairie ?
2. Y-a-t'il un moyen de savoir si une librairie est déja chargée en mémoire ?
Merci pour vos réponse.
- Windows XP
- Visual Basic 2005 Express
Partager