Witam!
Piszę program, który głównie będzie się składał z wtyczek.
Napotkałem dosyć dziwną (w moim mniemaniu) sytuację.
Otóż tworząc bibliotekę DLL udało mi się (teoretycznie) wyeksportować zmienną. Jest to dla mnie co najmniej dziwne, bo nie mam zielonego pojęcia jak taką zmienną można by użyć. Oto jak to wygląda:
plik test.h
extern "C" __declspec(dllexport) int Version(); //eksport funkcji
extern "C" __declspec(dllexport) int zmienna; //eksport zmiennej
plik test.cpp
int zmienna; //deklaracja zmiennej
int Version() //funkcja
{return 1;}
Dynamiczne ładowanie funkcji wygląda teraz tak:
plik *.h
typedef int (WINAPI *VerFunc)();
plik *.cpp
VerFunc VerFunkcja;
HINSTANCE biblioteka;
biblioteka = LoadLibrary("test.dll");
VerFunkcja = (VerFunc )GetProcAddress(biblioteka,"_Version");
I to działa dobrze, ale teraz w jaki sposób miałbym uzyskać dostęp do tej zmiennej zmienna. Czy też mam użyć funkcji GetProcAddress?? A jeśli tak, to jakiego typu byłaby ta zmienna (odpowiednik VerFunc).
Będę wdzięczny za wszelkie przemyślane odpowiedzi.
I nie piszcie, że mogę mieć dostęp do tej zmiennej eksportując odpowiednią funkcję, przez którą będę odczytywał lub modyfikował tę zmienną - tak umiem. Ciekawi mnie właśnie ten opisany sposób.