Foros del Web » Programación para mayores de 30 ;) » C/C++ »

como se agrega dll

Estas en el tema de como se agrega dll en el foro de C/C++ en Foros del Web. Nuevamente pidiendo su ayuda compañeros, esta vez con el problema que tengo la dll de microchip, mpusbapi.dll. Una de sus funciones es la siguiente: MPUSBGETDLLVERSION(VOID) ...
  #1 (permalink)  
Antiguo 27/12/2010, 17:42
 
Fecha de Ingreso: julio-2008
Mensajes: 50
Antigüedad: 16 años, 3 meses
Puntos: 1
como se agrega dll

Nuevamente pidiendo su ayuda compañeros, esta vez con el problema que tengo la dll de microchip, mpusbapi.dll. Una de sus funciones es la siguiente:

MPUSBGETDLLVERSION(VOID)

pero no se como hacer que me devuelva el valor, ya que no conozco mucho sobre dll en C++. Espero que alguien me pueda ayudar. En C# tengo el siguiente codigo, por si les sirve:

public Int32 Version()
{
Int32 VALUE;
VALUE = Convert.ToInt32(_MPUSBGetDLLVersion());

return VALUE;
}

y para el boton "VERSION", el siguiente codigo:

private void button6_Click(object sender, EventArgs e)
{
Int32 VERSION;

VERSION = USB.Version();
textBox1.Text = VERSION.ToString();
}
  #2 (permalink)  
Antiguo 28/12/2010, 14:17
 
Fecha de Ingreso: febrero-2007
Mensajes: 163
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: como se agrega dll

Y que error te tira?.
  #3 (permalink)  
Antiguo 29/12/2010, 00:42
 
Fecha de Ingreso: julio-2008
Mensajes: 50
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: como se agrega dll

Lo que pasa es de que no se bien como hacerlo, si alguien me ayuda, explica, informa o guia. Agradezco cualquier aporte de como hacerlo.
  #4 (permalink)  
Antiguo 29/12/2010, 16:44
 
Fecha de Ingreso: julio-2008
Mensajes: 50
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: como se agrega dll

libHandle = NULL;
libHandle = LoadLibrary("mpusbapi.dll");

if(libHandle == NULL)
{
cout<<"LoadLibrary ERROR \n\r";
}
else
{
cout<<"LoadLibrary Success \n\r";
MPUSBGetDLLVersion=(DWORD(*)(void))GetProcAddress( libHandle,"_MPUSBGetDLLVersion");
// MPUSBGetDLLVersion = DWORD _MPUSBGetDLLVersion;

// MPUSBGetDeviceCount=(DWORD(*)(PCHAR))GetProcAddres s(libHandle,"_MPUSBGetDeviceCount");
// if((MPUSBGetDLLVersion==NULL)||(MPUSBGetDeviceCoun t==NULL)) printf("GetProcAddress Error\r\n");
}

// cout << "The VID/PID being tested: " << vid_pid << endl;
temp = MPUSBGetDLLVersion();
cout << "DLL Version => " << hex << temp << endl;
//temp = MPUSBGetDeviceCount(vid_pid);

Aqui te pongo el codigo y los problemas que devuelve:

assignment of function `DWORD MPUSBGetDLLVersion()'
cannot convert `DWORD (*)()' to `DWORD ()()' in assignment
  #5 (permalink)  
Antiguo 30/12/2010, 18:03
 
Fecha de Ingreso: febrero-2003
Ubicación: D.F.
Mensajes: 163
Antigüedad: 21 años, 9 meses
Puntos: 22
Respuesta: como se agrega dll

Al parecer estás asignando la dirección de una función directamente a una función y debería ser a un puntero a función.

MPUSBGetDLLVersion=(DWORD(*)(void))GetProcAddress( libHandle,"_MPUSBGetDLLVersion");

El siguiente código es de ejemplo, es simple si tienes claro el concepto de puntero a función, de lo contrario tendrás que estudiarlo.

Código C++:
Ver original
  1. #include <windows.h>
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. typedef DWORD (*VERSIONPROC)();
  6.  
  7. int main(){
  8.  
  9.     HINSTANCE hinstLib;
  10.     VERSIONPROC procVersion;
  11.     DWORD version;
  12.  
  13.     hinstLib = LoadLibrary(TEXT("mpusbapi.dll"));
  14.  
  15.     if(hinstLib != NULL){
  16.  
  17.         procVersion = (VERSIONPROC) GetProcAddress(hinstLib, "_MPUSBGetDLLVersion");
  18.         if(procVersion != NULL){
  19.             version = procVersion();
  20.             cout << hex << version << endl;
  21.         }
  22.         FreeLibrary(hinstLib);
  23.     }
  24.  
  25.     return 0;
  26. }
  #6 (permalink)  
Antiguo 30/12/2010, 19:35
 
Fecha de Ingreso: julio-2008
Mensajes: 50
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: como se agrega dll

Muchas Gracias.

No sabes cuanto busqué hacer esto. Bueno creo que si me hace falta estudiar apuntadores y funciones en general.
  #7 (permalink)  
Antiguo 03/01/2011, 15:01
 
Fecha de Ingreso: julio-2008
Mensajes: 50
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: como se agrega dll

Despues d buscar informacion de como hacer esto pero con la mpusb.h, no he podido relizarlo. Espero que me puedas ayudar. Además te mandé un MP y no hubo respuesta. Espero respuesta.

Etiquetas: dll
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 10:20.