Mam zamiar uczyć się tworzenia bibliotek DLL oraz aplikacji, które będą je wykorzystywać - mój pierwszy program który do tego stworzyłem ma za zadanie ładować bibliotekę po wciśnięciu guzika "dodaj" przenieść wartości zmiennych do tej biblioteki, w DLL-ce obliczyć wartość tych 2-óch zmiennych i z powrotem wysłać do aplikacji wartość wyniku - niestety - tak się nie dzieję - nie umiem jeszcze bawić się tak złożonymi programami, a te wszystkie kursy, informacje, które znalazłem na Google nie pomogły mi rozwiązać problemu. Jaka jest przyczyna, że program nie działa ?
Kod aplikacji :
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#pragma argsused
#include "Unit1.h"
int wynik;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
extern "C" __declspec(dllimport)void dzialanie(int a, int b, int w){
};
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ExitClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DodajClick(TObject *Sender)
{
int l1, l2;
l1=L1->Text.ToInt();
l2=L2->Text.ToInt();
dzialanie(l1, l2, wynik);
W->Text=wynik;
}
//---------------------------------------------------------------------------
Kod biblioteki:
//---------------------------------------------------------------------------
#include <vcl.h>
#include <windows.h>
#pragma hdrstop
#pragma argsused
//---------------------------------------------------------------------------
extern "C" __declspec(dllexport) void dzialanie( int a, int b, int w);
//---------------------------------------------------------------------------
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
return 1;
}
//---------------------------------------------------------------------------
void dzialanie (int a, int b, int wynik)
{
wynik = a+b;
}
Jeśli istnieje taka potrzeba, zawsze moge komuś wysłać cały projekt, do pomocy.