Unhandled exception at 0x00000000 in c++39dll.exe: 0xC0000005: Access violation.

Status
Niet open voor verdere reacties.

dvdbrander

Gebruiker
Lid geworden
13 apr 2010
Berichten
34
deze error krijg ik met dit script:
[CPP]FARPROC procid;HINSTANCE dllid;
int tcp;
int tcplisten, tcpconnected;
int initserver(void)
{ //types inladen
typedef int (__cdecl * ty_int_1)(int);
typedef int (__cdecl * ty_int_2)(int,int);
typedef int (__cdecl * ty_int_3)(int,int,int);


//dll inladen
HINSTANCE dllid = LoadLibrary(L"39dll.dll");
//functies inladen
FARPROC procid = GetProcAddress(HMODULE (dllid),"TcpListen");
ty_int_3 tcplisten;
tcplisten = ty_int_3(procid);
procid = GetProcAddress(HMODULE (dllid),"TcpConnected");
ty_int_1 tcpconnected;
tcpconnected = ty_int_1(procid);


/* The actual call to the function contained in the dll */
int tcp = tcplisten(12563,10, 1);

/* The return val from the dll */

return tcpconnected(tcp);
} [/CPP]
bij de return.
heeft iemand een idee wat er fout is, of moet ik daarvoor een deel van de dll posten?
 
Gezien de foutmelding, grote kans dat je een ergens een call doet met een NULL value. Heb je gecontroleerd of bijvoorbeeld 'procid' of 'dllid' een geldige return heeft?

Ik ben ook niet bekend met deze manier van casten van de functie

tcplisten = ty_int_3(procid)

daar ty_int_1 niet gecast is als een pointer in de typedef, copieer je hier niet gewoon een INT, met waarde 0?

ik zou verwachten (uit mijn hoofd):
Code:
ty_int3 tcplisten
tcplisten = (ty_int_3) GetProcAddress(dllid,"TcpListen")
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan