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
Questo invece è il file di prova che la dovrebbe usarecodice:// 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; }
mi da questo errore all'ultima rigacodice: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"); }
come se ptr puntasse ad una funzione senza parametri.codice:error C2440: '=' : cannot convert from 'int (__stdcall *)(void)' to 'int (__cdecl *)(int,int)'
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

Rispondi quotando
