Hola, muy buenas. Resulta que me he hecho con Visual Studio 2005 una dll con C++, con las funciones de un código que ya tenía. Ahora estoy intentando hacer un programa que se vincule dinámicamente a la dll para poder usar sus funciones, pero el problema es que, al no haberlo hecho nunca antes, creo que lo estoy haciendo mal. Posteo aquí el código de la vinculación que estoy realizando:
#include "stdafx.h"
#include <windows.h>
#include <stdlib.h>
#include <iostream>
#include "lSendHexFile.h"
typedef UINT (CALLBACK* LPFNDLLFUNC1)(DWORD,UINT);
LPFNDLLFUNC1 ReadID, ReadPM, ReadEE, SendHexFile; // Function pointer
#define BUFFER_SIZE 4096
int _tmain(int argc, _TCHAR* argv[])
{
HANDLE ComDev ;
char * pInterfaceName = "COM1";
char * pReadPMAddress = NULL;
char * pReadEEAddress = NULL;
char * pBaudRate = "115200";
FILE * pFile = NULL;
eFamily Family;
char Buffer[BUFFER_SIZE];
HINSTANCE hDll;
hDll = LoadLibrary("lSendHexFile.dll"); // cargar librería
ReadID = (LPFNDLLFUNC1) GetProcAddress(hDll, "ReadID");
ReadPM = (LPFNDLLFUNC1) GetProcAddress(hDll, "ReadPM");
ReadEE = (LPFNDLLFUNC1) GetProcAddress(hDll, "ReadEE");
SendHexFile = (LPFNDLLFUNC1) GetProcAddress(hDll, "SendHexFile");
// Read Device ID
Family = ReadID(&ComDev);
// Process Read PM request and exit
if(pReadPMAddress != NULL)
{
ReadPM(&ComDev, Buffer, pReadPMAddress, Family);
return 0;
}
// Process Read EEPROM request and exit
if(pReadEEAddress != NULL)
{
ReadEE(&ComDev, Buffer, pReadEEAddress, Family);
return 0;
}
return 0;
FreeLibrary(hDll); // descargar librería
return EXIT_SUCCESS;
}
Me da cuatro errores de compilación, y agradecería muchísimo que alguien me comentase algo para que estos errores no reaparezcan y consiga de una vez saber como se hacen las vinculaciones dinámicas.
Muchas gracias por adelantado. Un saludo.