cs_Erwine
Messages postés3Date d'inscriptionmercredi 23 août 2006StatutMembreDernière intervention30 août 2006
-
30 août 2006 à 16:38
wwwkoko
Messages postés1Date d'inscriptionsamedi 13 janvier 2007StatutMembreDernière intervention21 janvier 2007
-
21 janv. 2007 à 20:57
Bonjour à toutes et à tous,
je travaille depuis plusieurs jours sur un projet qui me permettrais de récupérer
le poids d'une balance(precia-mollen) de camion.
Je suis analyste/programmeuse en Windev mais novice en programmation "VB"...
Le but étant de créer une dll sous VB contenant l'OCX fourni avec la balance.
Cette dll doit être utilisée ensuite dans Windev 9 pour récupérer le poids des camions.
Grace aux conseils des programmeurs VB trouvés sur ce site, j'ai pu créer une dll
permettant l'affichage d'un message(msgbox) dans windev.
Mais lorsque je souhaite intégrer la méthode me permettant de me connecter au port COM1
La description de la méthode a été fournie avec l'ocx.
Ce qui suit fonctionne très bien autant dans vb que dans windev... //contenu de ma classe VB (class_bal)
Public Function affiche_mess()
MsgBox "hello"
End Function
// test appel de la dll dans VB
Option Explicit
Private Declare Function affiche_mess Lib "balance.dll" () As Long
Public Sub Form_Load()
Dim obj As Object
Shell "regsvr32 /s balance.dll"
Set obj = CreateObject("projet_balance.class_bal")
obj.affiche_mess
End Sub
Ce qui suit ne fonctionne pas, VB me retourne une erreur 424 "Un objet est requis"
//contenu de ma classe VB (class_bal)
Public Function connect_balance()
i = Indicate.Connect("\\.\com1", "1200,e,7,1", 3, 0,
1) --> indicate est le composant ajouté grace à l'ocx...
If i = 0 Then MsgBox ("COM1 non
prêt")
Connect est la méthode
End Function
// test appel de la dll dans VB
Option Explicit
Private Declare Function connect_balance Lib "balance.dll" () As Long
Public Sub Form_Load()
Dim obj As Object
Shell "regsvr32 /s balance.dll"
Set obj = CreateObject("projet_balance.class_bal")
obj.connect_balance --> envoie une erreur 424 "Un objet est requis"
End Sub
Si l'appel de la dll ne fonctionne déja pas dans VB, cela ne fonctionnera pas dans Windev
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 30 août 2006 à 16:50
Je ne vais pas résoudre ton problème, mais juste une petite question (je ne me souviens pas avoir suivie ton histoire de balance), tu dis que l'ocx est fourni avec ta balance. N'aurais-tu pas aussi une dll fournie au cas ou tu voudrais faire ton appli en C par exemple, du moins sans utiliser l'ocx ?
Si c'est le cas, cette dll ne fonctionnerait-elle pas directement avec Windev ?
Ca t'éviterait de te prendre la tete à créer une Dll en VB. Chose qui est tout de même pas évidente.
Sinon est-ce-que ton ocx s'appelle Indicate dans la dll. Si c'est pas le cas, je pense que le nom de l'ocx doit apparaitre d'une manière ou d'une autre dans l'instruction. Sinon VB doit pas savoir qu'il faut aller chercher indicate dans l'ocx.
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
cs_Erwine
Messages postés3Date d'inscriptionmercredi 23 août 2006StatutMembreDernière intervention30 août 2006 30 août 2006 à 17:05
Bonjour Casy,
Malheureusement, la dll n'est pas fournie, j'ai contacté la société qui fourni cette balance et
le helpdesk m'a affirmé ne pas avoir cette dll
Lors de l'ajout du composant correspondant à l'ocx, VB a ajouté un icone dans la liste des composant...
Il l'a appellé indicate. Mon ocx s'appelle indicate.ocx justement...
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 30 août 2006 à 17:15
La liste des composants ?? parle-tu de la boite à outil de VB (généralement la colonne de gauche).
Si c'est le cas, cela ne suffit pas, là il est juste disponible parmis les outils ajoutables à ton projet. Il faut que tu l'ajoute à ton projet. Càd que tu pose ton composant sur une form de ton projet. Là il aura un nom (peut-etre du style 'Indicate1')que tu retrouvera dans la propriété Name et que tu peux éventuellement modifier.
Ensuite dans le code il doit falloir faire un truc du genre NomDelOcx.Connect .....
Je sais si tu me suis ???
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 30 août 2006 à 18:40
salut,
si l'ocx est dépendant d'une dll non fournie il ne fonctionnera jamais.
quant à ton utilisation de balance.dll, c'est étrange...
d'un côté tu la déclares comme une vraie dll (comme une API) donc n'a pas besoin d'être enregistrée, et de l'autre tu l'enregistre comme un activex (donc fausse dll) dynamique...
<hr size="2" width="100%" />Prenez un instant pour répondre à ce sondage svp
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Erwine
Messages postés3Date d'inscriptionmercredi 23 août 2006StatutMembreDernière intervention30 août 2006 30 août 2006 à 20:44
Bonsoir :)
Casy, merci, tu m'as mise sur la bonne voie... en effet, je n'avais pas créé de form avec le champ
Indicate1.
Cà a porté ces fruits 1000 mercis à vous tous pour vos conseils