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 reason, LPVOID reserved)
{
return TRUE;
}
//---------------------------------------
/* funciones a emplear */
extern "C"
{
DLLEXPORT _stdcall int suma(int a,int b)
{
return (a+b);
}
//------------------------------------------
DLLEXPORT _stdcall char* cadena(char* s)
{
char *s2="programado en C++";
strcat(s,s2);
return s;
}
}
Código PHP:
char *strcat(char*s1, const char *s2);
La llamada desde visual basic es el siguiente:
Código PHP:
Private Declare Function suma Lib "C:\...\libreria.dll" (ByVal a As Integer, ByVal b As Integer) As Integer
Private Declare Function cadena Lib "C:\...\libreria.dll" (ByVal s As String) As String
Código PHP:
Private Sub cmdCadena_Click()
Static s As String
s = "[B]DLL[/B] "
MsgBox cadena(s)
End Sub
La salida debiera de ser así:
"DLL programado en C++"
Pero, solamente aparece el string que envio desde visual basic:
"DLL"
No se que estaré haciendo mal o muy mal, como datos adicionales tengo win7. Agradeceria cualquier ayuda.
Gracias.....
Nos vemos