Discussions au sujet des autres produits NI

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

.Net => Problème avec le type Integer8(64 Bits) de Microsoft

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 Compliments
Message 1 sur 9
6 539 Visites

Bonjour,

 

Pouvez vous poster un bout de code montrant le problème que vous rencontrez ? Ce sera plus simple pour que l'on puisse vous aider.

 

Aussi pouvez vous préciser la version du framework .NET utilisée.

 

Cordialement,

 

Da Helmut
Voir le profil de Maxime M. sur LinkedIn - View Maxime M.'s profile on LinkedIn
0 Compliments
Message 2 sur 9
6 535 Visites

Bonjour,

 

En pièce jointe se trouve une copie d'écran du bout de code que j'utilise ainsi que le résultat obtenu.
J'ai également essayé d'obtenir la valeur en passant par la méthode "Get" mais le résultat est identique, j'imagine que tout se joue au niveau du VI .Net Object To Variant.

 

Pour infos j'utilise le System.DirectoryServices(2.0.0.0).

 

Si jamais vous avez des idées je suis preneur...

 

Merci d'avance

Tout télécharger
0 Compliments
Message 3 sur 9
6 531 Visites

Bonjour,

 

Il me semble que la sortie de PropertyValueCollection.Value est une référence, donc on doit surement être dans ce cas précis :

 

Accessing Values by Reference when Invoking a .NET Assembly Method from LabVIEW

 

Cordialement,

Da Helmut
Voir le profil de Maxime M. sur LinkedIn - View Maxime M.'s profile on LinkedIn
Message 4 sur 9
6 520 Visites

Re-bonjour,

 

Merci pour l'info je vais regarder ça de plus près,

 

Effectivement la sortie de PropertyValueCollection.Value semble être une référence, référence qui est traitée par la suite dans le VI .NetObjectToVariant dans mon code.

 

Vu qu'avec le même bout de code j'arrive à récupérer des valeurs codées avec un type différent (I32,String,TimeStamp...), peut-on en déduire que c'est ce VI qui ne supporte pas le type Integer8?

 

0 Compliments
Message 5 sur 9
6 514 Visites

Bonjour,

 

D'ou voyez vois qu'il s'agit d'un Integer8 ?

 

Moi je vois : "Type : System.Object ".

 

Cordialement,

Da Helmut
Voir le profil de Maxime M. sur LinkedIn - View Maxime M.'s profile on LinkedIn
Message 6 sur 9
6 509 Visites

Bonjour,

 

l'attribut de la propriété accountExpires auquel je tente d'accéder est codé en Integer8 d'après MSDN:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms675098(v=vs.85).aspx

 

Je m'attends donc à recevoir un Integer8 mais à la place j'obtiens un System_Object que je ne sais pas interpréter.

Cordialement

0 Compliments
Message 7 sur 9
6 506 Visites

Bonjour,

 

Par hasard, est-ce qu'en effectuant un simple cast sur la sortie vous arrivez à obtenir le résultat escompté ?

 

Comme de cette façon :

 

extract.png

 

Cordialement,

 

 

Da Helmut
Voir le profil de Maxime M. sur LinkedIn - View Maxime M.'s profile on LinkedIn
0 Compliments
Message 8 sur 9
6 478 Visites

Bonjour,

 

merci pour votre aide.

 

Malheureusement j'avais déjà essayé de "caster" la sortie mais sans succès: la valeur change à chaque execution du VI. On doit probablement "caster" la référence qui est renvoyée et non la donnée de la propriété.

Cordialement

 

0 Compliments
Message 9 sur 9
6 460 Visites