Salve a tutti.
Non so usare le dll in C++.
ho usato l'ide visual studio 6.0 ed hos eguito dei consigli in rete.
Eccovi i miei codidi
DLL.cpp
codice:
// DLL.cpp : Defines the entry point for the DLL application.
//
#include "stdafx.h"
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
extern "C" int __declspec(dllexport) Somma(int a, int b)
{
return a+b;
}
Questo invece è il file di prova che la dovrebbe usare
codice:
void main()
{
HMODULE Hl = LoadLibrary("C:\\DLL\\Debug\\Dll.dll");
cout<<"Handle alla libreria \"C:\\DLL.dll\"\n"<<Hl<<"\n";
cout<<"Indirizzo funzione esportata \"Somma\"\n"<<GetProcAddress(Hl,"Somma")<<"\n";
cout<<"Indirizzo funzione esportata \"Pippo\" (Non esiste)\n"<<GetProcAddress(Hl,"Pippo")<<"\n";
int (*ptr)(int,int);
ptr=GetProcAddress(Hl,"Somma");
}
mi da questo errore all'ultima riga
codice:
error C2440: '=' : cannot convert from 'int (__stdcall *)(void)' to 'int (__cdecl *)(int,int)'
come se ptr puntasse ad una funzione senza parametri.
Aiutatemi per favore è da settimane che non riesco a trovare una soluzione.
Se possibile il risultato che vorrei è quello di avere un file .exe ed uan cartella con le librerie. Preferirei non portarmi dietro file strani come ad esempio un .def od altri
Grazie in anticipo. Cordiuali saluti. Ciaoo