Hvordan konvertere en C ++ String til LStrHandle
LabVIEW, av National Instruments, er en allsidig og fleksibelt program som kan brukes til å manipulere og presentere resultatene av vitenskapelige eksperimenter. Denne allsidigheten kommer fra API tilbys med LabVIEW programvare som gjør at en programmerer for å utvide funksjonaliteten som tilbys av programmet. Passerer data til LabVIEW hjelp av den medfølgende API er komplisert inntil du lære de riktige trinnene som er nødvendig, men koden til å passere dataene er lett å bruke.
Bruksanvisning
1 Inkluder extcode heading fra LabVIEW API. Denne inneholder vital funksjonaliteten som er nødvendig for strengen konvertering. omfatter også C ++ standard bibliotekets streng header, som inneholder nødvendig informasjon for å jobbe med C ++ strenger:
inkluderer <string> inkludere "extcode.h"
2 Erklærer prototypen for konvertering funksjon. Bestå LStrHandle å omdannes ved referanse, for å muliggjøre retur av en anvendelig feilkode:
MgErr StringToLStrHandle (std :: string strToConvert, LStrHandle & strResult);
3 Bruk funksjonen "DSSetHandleSize" for å endre størrelsen på LStrHandle variabelen gått inn i funksjonen. Den LStrHandle variable må være stor nok til å holde både et resultat strengen og et heltall som representerer størrelsen på strengen:
// Erklærer en feil variabel for referanse
MgErr errCode;
// Endre størrelsen på LStrHandle
errCode = DSSetHandleSize (strResult, sizeof (char) * strToConvert.length () + 4);
4 Kopier størrelsen av opprinnelsen strengen inn i LStrHandle variable ved å modifisere «cnt» medlem av LStrHandle struktur:
(* StrResult) -> CNT = strToConvert.length ();
5 Bruk "MoveBlock" -funksjonen til å kopiere strengen data fra C ++ strengen inn i LStrHandle variabel. Etter dette er fullført, returnere eventuelle feil som oppstår til brukeren:
// Fylle LStrHandle med strengdata.
MoveBlock (& (strToConvert.c_str ()), (strResult) -> str, (strResult) -> CNT);
// Returnerer feilkoden til brukeren, hvis det er aktuelt
tilbake errCode;
Hint
- Riktig innkapsling gjør denne koden ekstremt gjenbrukbare. Prøv å sette den inn i en istream operatør i en klasse innpakning LStrHandle å gjøre koden mer lesbar og brukervennlig.
- Kontroller at LStrHandle objektet sendes til funksjonen ovenfor er riktig initialisert. Den LStrHandle er en peker gjenstand innpakket i en struktur og kan produsere null referanse unntak dersom det ikke håndteres riktig.
- Sørg for å sjekke eventuelle feilkoder som tilbys av DSSetHandleSize funksjon og håndtere dem på riktig måte.