September 10
LabVIEW, National Instruments, è un programma versatile e flessibile che può essere usato per manipolare e presentare i risultati degli esperimenti scientifici. Questa versatilità deriva dalla API offerto con il software LabVIEW che permette ai programmatori di estendere le funzionalità offerte dall'applicazione. Passando i dati di LabVIEW utilizzando le API fornite è complessa fino a quando si impara la procedura corretta richiesti, ma il codice per passare i dati è facile da riutilizzare.
1 Includere l'intestazione extcode dalle API LabVIEW. Questo contiene funzionalità vitale necessario per la conversione di stringhe. Includere anche il C ++ intestazione stringa di libreria standard, che contiene le informazioni necessarie per lavorare con le stringhe C ++:
includere <string> includere "extcode.h"
2 Dichiarare il prototipo per la funzione di conversione. Passare il LStrHandle da convertire facendo riferimento, per consentire il ritorno di un codice di errore applicabile:
MgErr StringToLStrHandle (std :: string strToConvert, LStrHandle & strResult);
3 Utilizzare la funzione "DSSetHandleSize" per ridimensionare la variabile LStrHandle passata nella funzione. La variabile LStrHandle deve essere abbastanza grande da contenere sia la stringa risultato e un intero che rappresenta la dimensione di tale stringa:
// Dichiarare una variabile di errore di riferimento
MgErr errCode;
// Ridimensiona il LStrHandle
errCode = DSSetHandleSize (strResult, sizeof (char) * strToConvert.length () + 4);
4 Copiare la dimensione della stringa origine nella variabile LStrHandle modificando il membro "cnt" della struttura LStrHandle:
(* StrResult) -> cnt = strToConvert.length ();
5 Utilizzare la funzione "MoveBlock" per copiare i dati di stringa dalla stringa di C ++ nella variabile LStrHandle. Dopo che questo è completo, riportare eventuali errori riscontrati per l'utente:
// Popolare il LStrHandle con i dati di stringa.
MoveBlock (& (strToConvert.c_str ()), (strResult) -> str, (strResult) -> cnt);
// Restituisce il codice di errore per l'utente, se applicabile
tornare errCode;