Whats happening here

Hi guys,

Well im trying to work on desmume and ive come across something rather strange happening,

so at the top we have,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
typedef int (__cdecl *T_pcap_findalldevs)(pcap_if_t** alldevs, char* errbuf);
typedef void (__cdecl *T_pcap_freealldevs)(pcap_if_t* alldevs);
typedef pcap_t* (__cdecl *T_pcap_open_live)(const char* source, int snaplen, int flags, int readtimeout, char* errbuf);
typedef void (__cdecl *T_pcap_close)(pcap_t* dev);
typedef int (__cdecl *T_pcap_setnonblock)(pcap_t* dev, int nonblock, char* errbuf);
typedef int (__cdecl *T_pcap_send)(pcap_t* dev, const u_char* data, int len);
typedef int (__cdecl *T_pcap_dispatch)(pcap_t* dev, int num, pcap_handler callback, u_char* userdata);

T_pcap_findalldevs _pcap_findalldevs = NULL;
T_pcap_freealldevs _pcap_freealldevs = NULL;
T_pcap_open_live _pcap_open_live = NULL;
T_pcap_close _pcap_close = NULL;
T_pcap_setnonblock _pcap_setnonblock = NULL;
T_pcap_send _pcap_send = NULL;
T_pcap_dispatch _pcap_dispatch = NULL;


#define LOADSYMBOL(name) \
	_##name = (T_##name)GetProcAddress(wpcap, #name); \
	if (_##name == NULL) return; 


now futher down we have
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
LOADSYMBOL(pcap_findalldevs);
	MessageBox(NULL, "1) pcap_findalldevs", "LOADSYMBOL", MB_ICONASTERISK);
	LOADSYMBOL(pcap_freealldevs);
	MessageBox(NULL, "2) pcap_freealldevs", "LOADSYMBOL", MB_ICONASTERISK);
	LOADSYMBOL(pcap_open_live);
	MessageBox(NULL, "3) pcap_open_live", "LOADSYMBOL", MB_ICONASTERISK);
	LOADSYMBOL(pcap_close);
	MessageBox(NULL, "4) pcap_close", "LOADSYMBOL", MB_ICONASTERISK);
	LOADSYMBOL(pcap_setnonblock);
	MessageBox(NULL, "5) pcap_setnonblock", "LOADSYMBOL", MB_ICONASTERISK);
	LOADSYMBOL(pcap_send);
	MessageBox(NULL, "6) pcap_send", "LOADSYMBOL", MB_ICONASTERISK);
	LOADSYMBOL(pcap_dispatch);
	MessageBox(NULL, "7) pcap_dispatch", "LOADSYMBOL", MB_ICONASTERISK);
	bWinPCapAvailable = true;
	MessageBox(NULL, "8) set to True", "bWinPCapAvailable", 0);


however when the code is executed we only get to LOADSYMBOL(pcap_send);
ie the last messagebox showing is 5) pcap_setnonblock.
MessageBox(NULL, "5) pcap_setnonblock", "LOADSYMBOL", MB_ICONASTERISK);

so what would be causing the code to stop executing on LOADSYMBOL(pcap_send);

and what exactly is this code doing?

cheers,
Matt
Use Depends to load your DLL. It'll show you what functions are exported.
Topic archived. No new replies allowed.