Convertir un CString en ViBuf (visual studio 2010/C++/Visa.h)

- - Dernière réponse :  vybz_kartel - 26 mars 2015 à 10:46
Bonjour tout le monde,

J'essaie de créer une IHM sous visual studio 2010 afin de piloter un atténuateur.

Je suis notamment amené a utiliser la fonction viWrite() (librairie VISA) qui permet d 'envoyer une commande à l'appareil de mesure, et qui prend en paramètre une variable de type ViBuf.

Pour mettre l'attenuation a 50 dB il faut envoyer la commande: "A050,"

Voulant permettre à l'utilisateur de mon IHM de modifier l'atténuation de l'appareil selon ses désirs( Cstring valeur) , je crée par conséquent :

CString attenutation=( Cstring ) "A0" + valeur + (Cstring) "," ;

il me faut maintenant convertir ceci en ViBuf pour l' envoyer a l'appareil grace a la fonction ViWrite...

Si quelqu'un peux me débloquer, je lui en serait très reconaissant!
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
17
1
Merci
Salut,

tu peux optimiser un peu ton CString
int valeur = 50;
CString attenuation(_T("A0"));
attenuation.AppendFormat("%d,", valeur);


Ensuite ViBuf n'est pas un type mais le nom du buffer
Le type est ViChar qui doit etre défini comme ceci
typedef char ViChar;

Donc un simple GetBuffer() / ReleaseBuffer() fait l'affaire

const int VIBUF_LEN = 32;
ViChar viBuf[VIBUF_LEN];

lstrcpy(viBuf, attenuation.GetBuffer());
attenuation.ReleaseBuffer();

viWrite(?, viBuf, lstrlen(viBuf), ?);   



bye...

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 212 internautes nous ont dit merci ce mois-ci

Commenter la réponse de yann_lo_san
0
Merci
merci beaucoup mec t'es au top !

Que t'aille au paradis de l'informatique avec 999 vier... euh ordi a programmer bien sur!

Bonne continuation
Commenter la réponse de vybz_kartel