From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

char * to LStrHandle

Esperando les sea de utilidad, platicaré un poco acerca de un proyecto personal, que involucra la integración total de una celda de manufactura flexible. Parte de esta labor involucra comunicarme con un Robot Motoman UP6, mismo que requiere para su comunicación un archivo MotoCom32.dll y una llave física.
 
Independientemente de si coinciden con mi aplicación lo que quiero compartir es el intercambio de tipos de datos entre labview y Visual C++.
mi problema fue poder transferir de C++ un char *dato; a un LStrHandle, pues no son la misma estructura.
 
primero se debe comprender que LStrHandle es:
 
is a pointer to a pointer to a structure that contains two elements: a numeric that indicates the size of the string; and the string.
 
Lo que utilice para la comunicacion fue un CIN , el cual crea un archivo.c  que contiende el siguiente código base:
 
/* CIN source file */
#include "extcode.h"
#include "hosttype.h" //<-- se encuentra en la carpeta cintools
 
#include <string.h>    // <  incluir tambien
 
MgErr CINRun(LStrHandle www);
MgErr CINRun(LStrHandle www)
 {
 /* Insert code here */
/*el siguiente es solo un codigo para ejemplificar*/
char *word="hola";    
int size;
 
size=strlen(word);  //adquiere longitud de word
//como se sabe que LStrHandle se compone por dos partes vamos a descomponerlo en ambas
memcpy(LStrBuf(*www),word,size);
LStrLen(*www)=size;
 
 return noErr;
 }
 
 
esta rutina automaticamente  hace lo que de manera analoga, y gramaticalmente incorrecto sería    char *word = LStrHandle www ;
 
ver printscreen anexo.
 
 
0 Kudos
Message 1 of 1
(2,366 Views)