ypelissier
XLDnaute Nouveau
Bonjour,
J'ai le petit bout de code suivant :
Bien sur, j'ai la référence qui va bien.
Mais voilà, je suis sur Windows 7 et mes clients sont sur Windows XP et la DLL n'est pas au même endroit, sans compter que s'ils ne l'ont pas du tout, ça plante le code VB.
Et à chaque fois que j'avais cette configuration, pas de problème, on passe par le CreateObject et hop, plus besoin du référencement à la DLL et Windows (XP ou 7) se charge de faire un lien dynamique tardif, si la DLL est enregistrée pour Windows.
Donc, en étudiant un peu l'aide du PISDK avec cette idée derrière la tête, j'ai trouvé que je pouvais utiliser ce code suivant :
Donc tout confiant, je traduis mes quelques lignes de code...
Oui mais voilà, toutes les lignes fonctionnent bien, sauf la dernière bien sur... J'ai un beau message d'erreur qui me dit : "Erreur d'exécution '13': Incompatibilité de type"... D'ailleurs même en laissant la référence mais ça ça me parait normal.
Ben mince alors, j'ai aussi changé les Object en Variant pour toutes les variables, rien n'y fait, et seulement pour la variable utilisée à la dernière ligne, rien non plus.
Alors là je me retourne vers vous pour tenter de trouver une solution car Object et Variant n'ont, par définition, pas de type, ou plutôt accepte tous les types, c'est justement leur intérêt.
Bref, HELP ME PLEASE
Annexe : quelle est la différence entre Object et Variant ???
J'ai le petit bout de code suivant :
Code:
Dim PIServer As PISDK.Server
Dim pdt As PIData
Dim pvs As PIValues
Set PIServer = Servers(MonServeur)
Set pdt = PIServer.PIPoints(TagName).DATA
Set pvs = pdt.InterpolatedValues(dt, dt2, 1) ' dt1 et dt2 sont des dates
Bien sur, j'ai la référence qui va bien.
Mais voilà, je suis sur Windows 7 et mes clients sont sur Windows XP et la DLL n'est pas au même endroit, sans compter que s'ils ne l'ont pas du tout, ça plante le code VB.
Et à chaque fois que j'avais cette configuration, pas de problème, on passe par le CreateObject et hop, plus besoin du référencement à la DLL et Windows (XP ou 7) se charge de faire un lien dynamique tardif, si la DLL est enregistrée pour Windows.
Donc, en étudiant un peu l'aide du PISDK avec cette idée derrière la tête, j'ai trouvé que je pouvais utiliser ce code suivant :
Code:
Set MyPISDK = CreateObject("PISDK.PISDK")
Donc tout confiant, je traduis mes quelques lignes de code...
Code:
Dim MyPISDK As Object
Dim PIServer As Object
Dim pdt As Object
Dim pvs As Object
Set MyPISDK = CreateObject("PISDK.PISDK")
Set PIServer = MyPISDK.Servers(MonServeur)
Set pdt = PIServer.PIPoints(TagName).DATA
Set pvs = pdt.InterpolatedValues(dt, dt2, 1) ' dt1 et dt2 sont des dates
Oui mais voilà, toutes les lignes fonctionnent bien, sauf la dernière bien sur... J'ai un beau message d'erreur qui me dit : "Erreur d'exécution '13': Incompatibilité de type"... D'ailleurs même en laissant la référence mais ça ça me parait normal.
Ben mince alors, j'ai aussi changé les Object en Variant pour toutes les variables, rien n'y fait, et seulement pour la variable utilisée à la dernière ligne, rien non plus.
Alors là je me retourne vers vous pour tenter de trouver une solution car Object et Variant n'ont, par définition, pas de type, ou plutôt accepte tous les types, c'est justement leur intérêt.
Bref, HELP ME PLEASE
Annexe : quelle est la différence entre Object et Variant ???