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.