Home
Support
Pasando una Cadena de Caracteres de Visual Basic 6 a una DLL de ANSI C
Pasando una Cadena de Caracteres de Visual Basic 6 a una DLL de ANSI C
Software Primario:
Versión de Software Primario: 1.0
Versión de Software Primario Corregido: N/A
Software Secundario: Measurement Studio>>Measurement Studio for Visual C++
Problema: ¿Por qué obtengo caracteres ASCII aleatorios cuando trato de pasar una cadena de caracteres desde una función de Visual Basic 6 (VB 6) a una DLL de ANSI C?
Solución: Visual Basic 6 (VB 6) y ANSI C almacenan las cadenas de caracteres de forma distinta, por lo que no es posible pasar una cadena de caracteres por referencia de VB 6 a una DLL de ANSI C como lo haría para pasar la cadena de caracteres a una función de VB 6.
Por ejemplo:
La función llamada en la DLL de ANSI C está declarada de la siguiente manera:
int32 __stdcall ReadString(const char tempString[])
El prototipo para la llamada de la funci
ón en VB 6 necesita ser declarado y la cadena de caracteres debe pasarse por valor en lugar de por referencia:
Declare Function ReadString(ByVal physicalChannel As String) as Long
Entonces puede mandar llamar la función en VB 6 con una cadena de caracteres:
CreateAIVoltageChan("Hello World")
Ligas Relacionadas:
Archivos Adjuntos:
Día del Reporte: 01/14/2008
Última Actualización: 05/11/2009
Identificación del Documento: 4HDGQ69S
Other Support Options
Ask the NI Community
Collaborate with other users in our discussion forums
Request Support from an Engineer
A valid service agreement may be required, and support options vary by country.