Jesús, es importante tener en cuenta que Visual Basic y C++ tienen diferentes representaciones de tipos de datos, lo que puede causar problemas al pasar datos entre ellos.
Para solucionar este problema, te recomendaría seguir estos pasos:
1. Asegúrate de que la DLL en Visual Basic esté configurada correctamente para recibir y manejar cadenas de caracteres. Verifica que la función en la DLL esté declarada correctamente y que esté esperando una cadena de caracteres como parámetro.
2. En Visual C++, asegúrate de que estás pasando la cadena correctamente a la DLL. Puedes utilizar la función
`Marshal::StringToHGlobalAnsi` para convertir una cadena de caracteres administrada en Visual C++ a una cadena de caracteres ANSI que pueda ser utilizada por la DLL en Visual Basic. Aquí tienes un ejemplo de cómo hacerlo:
3. Asegúrate de que la función en la DLL en Visual Basic esté utilizando correctamente la cadena de caracteres recibida. Verifica que estés utilizando las funciones y métodos adecuados en Visual Basic para trabajar con cadenas de caracteres.
Si después de seguir estos pasos aún experimentas problemas, te recomendaría revisar la documentación específica de Visual Basic y Visual C++ para obtener más información sobre cómo pasar cadenas de caracteres entre los dos lenguajes. También puedes buscar ejemplos y tutoriales en línea que aborden este tema específico.
Recuerda que es importante comprender las diferencias en la representación de tipos de datos entre los lenguajes y asegurarte de que estás utilizando las conversiones y funciones adecuadas para trabajar con cadenas de caracteres en ambos lados.