elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


  Mostrar Temas
Páginas: [1]
1  Programación / Programación General / Problema Dll C++ DevC++ y Visual Basic 6 en: 6 Diciembre 2017, 22:24 pm
Buenas tardes gente....

Necesito pasar una cadena de texto de Visual Basic 6 a una Dll de DevC++ y mostrar un mensaje de la DLL

Tengo entendido que VB6 usa Unicode y DevC++ Ansi.... y no encuentro como convertirlo....

El código de la Dll es

en el .CPP

Código
  1. extern "C" __declspec( dllexport ) __stdcall void Mensaje(char Titulo[], char* Mensaje)
  2. //extern "C" __declspec( dllexport ) __stdcall void Mensaje(char *Titulo, char &Mensaje)
  3. //extern "C" __declspec( dllexport ) __stdcall void Mensaje(const char *Titulo, char* Mensaje)
  4. //extern "C" __declspec( dllexport ) __stdcall void Mensaje(const char Titulo, char* Mensaje)
  5. //extern "C" __declspec( dllexport ) __stdcall void Mensaje(LPCTSTR Titulo, char* Mensaje)
  6. //extern "C" __declspec( dllexport ) __stdcall void Mensaje(TCHAR *Titulo, char* Mensaje)
  7. //extern "C" __declspec( dllexport ) __stdcall void Mensaje(unsigned char Titulo, char* Mensaje)
  8. {
  9.       /*char *Convertir(char cad[])
  10.        {
  11.             int i;
  12.             for ( i = 0 ; cad[i] != '\0' ; i++ )
  13.             if( i == 0 || cad[i-1]==' ' || cad[i+1]== ' ' || cad[i+1]=='\0')
  14.             if(cad[i] >= 'a' && cad[i] <= 'z') cad[i] -= 32;
  15.             return cad;
  16.        }
  17.        
  18.        Convertir(Titulo);
  19.        Convertir(Mensaje);*/
  20.  
  21.       //convertir char* a LPCTSTR
  22.       //LPCTSTR stringT = Titulo;
  23.  
  24.       //convertir char* a LPCSTR
  25.       //LPCTSTR stringT;// = Titulo;
  26.       //CString stringT;
  27.       //TCHAR stringT;
  28.       //t_char stringT[];
  29.       //stringT = Titulo;
  30.  
  31.       //LPCTSTR stringM;// (Mensaje);
  32.       //char stringM[54];
  33.       //stringM = Mensaje;
  34.  
  35.       //int MAX_PATH;
  36.       //MAX_PATH = 200;
  37.       //char szANSIString [MAX_PATH];
  38.       /*WideCharToMultiByte (CP_ACP, // página de códigos ANSI
  39.        WC_COMPOSITECHECK, // Verificar caracteres acentuados
  40.        //wszUNICODEString, // Cadena Unicode de origen
  41.        Titulo,
  42.        -1, // -1 significa que la cadena tiene terminación cero
  43.        //szANSIString, // cadena de caracteres de destino
  44.        stringT,
  45.        //sizeof (szANSIString), // Tamaño del búfer
  46.        sizeof (stringT),
  47.        NULL, // Sin carácter predeterminado
  48.        TRUE);  // No me importa esta bandera
  49.        */
  50.       //MessageBox(NULL, Titulo.c_str(), stringM, MB_ICONINFORMATION);
  51.       //MessageBoxA(NULL, stringT, stringM, MB_ICONINFORMATION);
  52.       //MessageBox(NULL, stringT, Mensaje, MB_ICONINFORMATION);
  53.       MessageBox(NULL, Titulo, Mensaje, MB_ICONINFORMATION);
  54. }
  55.  

En el .H
Código
  1. //extern "C" __declspec( dllexport ) __stdcall void Mensaje(char* Titulo, char* Mensaje);
  2. extern "C" __declspec( dllexport ) __stdcall void Mensaje(char Titulo[], char* Mensaje);
  3. //extern "C" __declspec( dllexport ) __stdcall void Mensaje(LPCSTR Titulo, char* Mensaje);
  4. //extern "C" __declspec( dllexport ) __stdcall void Mensaje(char *Titulo, char &Mensaje);
  5. //extern "C" __declspec( dllexport ) __stdcall void Mensaje(const char Titulo, char* Mensaje);
  6. //extern "C" __declspec( dllexport ) __stdcall void Mensaje(LPCTSTR Titulo, char* Mensaje);
  7. //extern "C" __declspec( dllexport ) __stdcall void Mensaje(TCHAR *Titulo, char* Mensaje);
  8. //extern "C" __declspec( dllexport ) __stdcall void Mensaje(unsigned char Titulo, char* Mensaje);
  9.  

En VB6

Código
  1. En VB6
  2.  
  3. Private Declare Sub Mensaje Lib "dll.dll" (Titulo As String, Mensaje As String)
  4.  
  5. Private Sub Command1_Click()
  6.       Mensaje "Este es el título", "Este es el mensaje"
  7. End Sub
  8.  

Al correr el ejecutable de VB6 me tira un mensaje con símbolos....

Gracias de antemano
2  Programación / Programación C/C++ / Problema con GTK y C en: 27 Julio 2017, 01:16 am
Buenas tardes.....

He estado tratando de hacer un simple programa en GTK con Glade que al hacer click en un botón coloque un texto en un label.... todo va bien si escribo así
Código
  1. void texto_label(void)
  2. {
  3.       char text[] = "hola como estan";
  4. }
  5.  
  6. gtk_label_set_text (GTK_LABEL(label), text);
  7.  
  8. Hasta aquí funciona perfecto....
  9.  
  10. Luego cree un .h y un .c llamados venta.c venta.h
  11.  
  12. venta.h
  13. #ifndef VENTA_H_INCLUDED
  14. #define VENTA_H_INCLUDED
  15.  
  16. char letras (void);
  17.  
  18. #endif
  19.  
  20.  
  21. Ahora venta.c
  22. #include "venta.h"
  23.  
  24. char letras(void)
  25. {
  26.      char a;
  27.      a = "hola amigos";
  28.      return a;
  29. }
  30.  
  31. en el programa principal que se llama ventana.c
  32. //cree una funcion llamada texto_label
  33.  
  34. void texto_label(void)
  35. {
  36.      char text[] = letras();
  37.      gtk_label_set_text (GTK_LABEL(label), text);
  38. }
  39.  
Al compilar da error.... he probado todo lo habido y por haber y nada....

Lo que quiero es que al hacer click en el botón... la función letras de venta.c devuelva el texto y lo coloque en el label...

Gracias

[MOD] Usar etiquetas GeSHi, para publicar codigo.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines