Problem z dynamicznymi bibliotekami

0

typedef __declspec(dllimport) String TShoww(int,int);
typedef __declspec(dllimport) String TPilkarz(int,int,int);
TShoww *Showw=0;
TPilkarz *Pilkarz=0;

HINSTANCE Dll = LoadLibrary("Loadbase.dll");
if ( Dll ){
Showw = (TShoww*) GetProcAddress(Dll, "ShowDruzynaName");
char tab[60];
Pilkarz = (TPilkarz*) GetProcAddress(Dll, "ShowPilkarzName");
if ( Showw )
Label1->Caption = Showw(1,1);
if ( Pilkarz )
Label2->Caption = Pilkarz(1,1,1);
FreeLibrary(Dll);
};

Czemu powyższy kawałek kodu działa z char tab[60] a bez niego wywala, że naruszam nie swoją pamięć?

0

typedef __declspec(dllimport) String TShoww(int,int);
typedef __declspec(dllimport) String TPilkarz(int,int,int);

Zamiast tego co powyzej uzyj:

typedef String TShoww(int,int);
typedef String TPilkarz(int,int,int);

Powinno dzialac, ale lepiej operuj na typach char* itp. zamiast String. Dyrektywę __declspec(dllimport) używa się przy statycznym ładowaniu DLL a nie tak jak Ty to robisz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1