forked from steeve/libtorrent-go
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdllmain.i
40 lines (35 loc) · 1.04 KB
/
dllmain.i
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <windows.h>
#include <assert.h>
#ifdef __cplusplus
extern "C" {
#endif
void (*crosscall2)(void (*fn)(void *, int), void *, int);
void (*_cgo_allocate)(void *, int);
void (*_cgo_panic)(void *, int);
#ifdef __cplusplus
}
#endif
extern "C" BOOL WINAPI
DllMain (HANDLE hDll, DWORD dwReason, LPVOID lpReserved)
{
switch (dwReason)
{
case DLL_PROCESS_ATTACH:
HMODULE hModule;
hModule = GetModuleHandle(NULL);
crosscall2 = (void (*)(void (*fn)(void *, int), void *, int))GetProcAddress(hModule, "crosscall2");
assert(crosscall2 != NULL);
_cgo_allocate = (void (*)(void *, int))GetProcAddress(hModule, "_cgo_allocate");
assert(_cgo_allocate != NULL);
_cgo_panic = (void (*)(void *, int))GetProcAddress(hModule, "_cgo_panic");
assert(_cgo_panic != NULL);
break;
case DLL_PROCESS_DETACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}
return TRUE;
}