Foros del Web » Programación para mayores de 30 ;) » Programación General »

uso de dll-c++ en visual basic,problemas de string

Estas en el tema de uso de dll-c++ en visual basic,problemas de string en el foro de Programación General en Foros del Web. Holas; Tengo un proyecto en visual basic 6.0, el cual estara con dll, unas con ActiveX para controlar los eventos con option, commandbutton, listbox, etc. ...
  #1 (permalink)  
Antiguo 12/06/2011, 22:59
 
Fecha de Ingreso: agosto-2009
Mensajes: 23
Antigüedad: 14 años, 8 meses
Puntos: 2
Pregunta uso de dll-c++ en visual basic,problemas de string

Holas;

Tengo un proyecto en visual basic 6.0, el cual estara con dll, unas con ActiveX para controlar los eventos con option, commandbutton, listbox, etc.

Y otras con dll-c++ en Dev-C++. Tengo en la dll funciones para operaciones matemáticas y funcionan sin problemas desde VB.

El problema lo tengo al recibir datos de tipo string, al enviar por el formulario un string, este se muestra, pero no, el string asociado desde la dll y unido con srtcat, el código es el siguiente:

Código PHP:
#include <windows.h>
#include <cstdio>
#include <cstdlib>
#include <conio.h>
#include <cstring>
//--------------------------------------------------------
#if BUILDING_DLL
# define DLLEXPORT __declspec (dllexport)
#else /* Not BUILDING_DLL */
# define DLLEXPORT __declspec (dllimport)
#endif /* Not BUILDING_DLL */
//--------------------------------------------------------
BOOL APIENTRY DllMain (HINSTANCE hInst,DWORD reasonLPVOID reserved)
{
    return 
TRUE;
}
//---------------------------------------
/* funciones a emplear */
extern "C"
{
    
DLLEXPORT _stdcall int suma(int a,int b)
    {
        return (
a+b);
    }
    
//------------------------------------------
    
DLLEXPORT _stdcall charcadena(chars)
    {
        
char *s2="programado en C++";
        
strcat(s,s2);
        return 
s;
    }

La unión de cadena esta dada en la biblioteca string.h:

Código PHP:
char *strcat(char*s1, const char *s2); 
"Añade una copia de la cadena apuntada por s2 (incluyendo el carácter nulo) al final de la cadena apuntada por s1. El carácter inicial de s2 sobrescribe el carácter nulo al final de s1."

La llamada desde visual basic es el siguiente:

Código PHP:
Private Declare Function suma Lib "C:\...\libreria.dll" (ByVal a As IntegerByVal b As Integer) As Integer
Private Declare Function cadena Lib "C:\...\libreria.dll" (ByVal s As String) As String 
La llamada en el evento commandbutton es:

Código PHP:
Private Sub cmdCadena_Click()
    Static 
As String
    s 
"DLL "
    
MsgBox cadena(s)
End Sub 
en el cuadro de dialogo solo se muestra "DLL" y el string que debe aparecer a continuación "programado en C++", no se muestra.

En el MessageBox debiera aparecer el siguiente string enviando "DLL":

"DLL programado en C++"

Solamente se muestra:

"DLL"

No se que estaré haciendo mal o muy mal, como datos adicionales tengo win7. Agradeceria cualquier ayuda.

Gracias.....

Nos vemos

Etiquetas: string, visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:39.