LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

.Net problème avec le type Integer8(64 Bits)

Bonjour à tous,

 

je développe actuellement une application sous LabVIEW 7.1 qui doit s'interfacer avec un LDAP en Active Directory.


Je recontre un problème avec le type Integer8 (64 bits) de Mircosoft qui est utilisé notamment pour le codage de certaines propriétés du LDAP (accountExpires,lastLogon...).

Le problème intervient au moment de la lecture des propriétés codées en Integer8: pour transformer mes données .Net en Variant j'utilise le VI

.NetObjectToVariant mais celui-ci me renvoit dans le cadre d'un Integer8 un refnum.

 

Par exemple j'obtiens:

.NET Refnum OMId Class Size: 98, Assembly Name: mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089,  Class Name: System.__ComObject

0x1A200006

 

Comment doit-on procéder pour accéder à valeur de la propriété?

 

Merci d'avance pour votre aide.

0 Kudos
Message 1 of 6
(2,346 Views)

Bonjour UserFlo,

 

 

utilise la fonciton de conversion de variant en donnée:

 

dotnet variant.png

 

Cordialement,

Romain DUVAL || RF & Semiconductor Staff System Engineer || CLA || CTA
National Instruments France

0 Kudos
Message 2 of 6
(2,322 Views)

Bonjour Romain,

 

Merci pour ton aide.

Suite à une erreur de manipulation de ma part je n'avais pas posté dans le bon forum, voir plutôt ici:

http://forums.ni.com/t5/Discussions-de-produit-de-NI/Net-gt-Problème-avec-le-type-Integer8-64-Bits-d...

 

Toutefois concernant ta solution, j'avais essayé de transformer le variant comme dans ton exemple. Cependant en sortie du VI .NetObject To Variant j'obtiens un refnum que je ne sais pas interpréter ni transformer.

 

Le type Integer8 auquel j'essaie d'accéder est codé sur 64 bits et ne correspond donc pas à un I8 mais à un I64. Codage I64 qui n'existe pas sous LV 7.1

 

Cordialement 

 

0 Kudos
Message 3 of 6
(2,316 Views)

Bonjour Userflo,

 

Pour le I64 il faut utiliser un double precision. Normalement c'est disponible dans 7.1.

 

J'ai lu le forum en lien. avez tu pu tester la solution donnée par Helmut? (http://digital.ni.com/public.nsf/allkb/560CB7946920595C86256FF8004C7AA3)?

 

Je ne pense pas que 7.1 dispose de cette fonction (et de toute manière je ne pense pas que cela fonctionnera) mais as tu essayé de la sorte:

 

test2.png

la fonciton delete data value est présente dans la palette application control>> Memory control.

 

Sinon une autre solution serait de créer ta propre fonction .net (un wrapper) capable d'interpréter ta référence et de retourner la valeur.

 

Pourrais tu éventuellement me fournir un code simple d'exemple pour que j'essais de résoudre le pb de mon côté?

 

Cordialement,

 

Romain DUVAL || RF & Semiconductor Staff System Engineer || CLA || CTA
National Instruments France

0 Kudos
Message 4 of 6
(2,311 Views)

Bonjour Romain,

 

Effectivement LV 7.1 ne dispose pas de cette fonction.

Pour un snippet simple ça va être difficilement exploitable à mon avis car je m'interface avec un LDAP.

 

La solution du wrapper me semble du coup de moins en moins évitable.

Aurais-tu des documents, voir mieux des exemples sur le sujet?

J'avais trouvé le lien ci dessous mais c'est assez succint:

http://digital.ni.com/public.nsf/allkb/560CB7946920595C86256FF8004C7AA3

 

Cordialement

 

0 Kudos
Message 5 of 6
(2,305 Views)

Je t'avoue ne pas avoir trouvé de tutorial probant. je ne l'ai d'ailleurs jamais réalisé moi-même car jusqu'à présent toutes les assembly que j'utilisais disposait d'une méthode d'accès au donnée de classe. D'ailleurs es tu sûr qu'une classe parente ne dispose pas d'une méthode d'accès?

 

En faisant le parallèle avec l'implémentation qu'on réalise quand on fait de l'orienté Objet sous labVIEW, il te faudra ouvrir le code source de ton assembly dans Visual Studio et créer une nouvelle méthode d'accès. je suppose qu'il doit y avoir des templates pour cela comme c'est le cas sous LabVIEW:

 

http://zone.ni.com/reference/en-XX/help/371361D-01/lvconcepts/creating_classes/

 

Cordialement,

 

 

 

Romain DUVAL || RF & Semiconductor Staff System Engineer || CLA || CTA
National Instruments France

0 Kudos
Message 6 of 6
(2,302 Views)