Académico Empresa Eventos NI Developer Zone Soporte Soluciones Productos y Servicios Comuníquese con NI MyNI
This Document is not yet Rated  Rate this Document

Pasando una Cadena de Caracteres de Visual Basic 6 a una DLL de ANSI C

Software Primario: Measurement Studio>>Visual Basic Support
Versión de Software Primario: 1.0
Versión de Software Primario Corregido: N/A
Software Secundario: Measurement Studio>>Visual C++ Support

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

Your Feedback! poor Poor  |  Excellent excellent   Yes No
 Document Quality? 
 Answered Your Question? 
  1 2 3 4 5
Please Contact NI for all product and support inquiries.submit