int _load_python(char *dllname, char *bytes) { int i; struct IMPORT *p = imports; HMODULE hmod; ULONG_PTR cookie = 0; if (!bytes) return _load_python_FromFile(dllname); cookie = _My_ActivateActCtx();//try some windows manifest magic... //hmod = MemoryLoadLibrary(bytes); hmod = MyLoadLibrary(dllname, bytes, NULL); _My_DeactivateActCtx(cookie); if (hmod == NULL) { return 0; } for (i = 0; p->name; ++i, ++p) { //p->proc = (void (*)())MemoryGetProcAddress(hmod, p->name); p->proc = (void (*)())MyGetProcAddress(hmod, p->name); if (p->proc == NULL) { OutputDebugString("undef symbol"); dfprint(stderr, "undefined symbol %s -> exit(-1)\n", p->name); return 0; } } return 1; }
int _load_python(char *dllname, char *bytes) { int i; struct IMPORT *p = imports; HMODULE hmod; if (!bytes) return _load_python_FromFile(dllname); hmod = MemoryLoadLibrary(dllname, bytes); if (hmod == NULL) { return 0; } for (i = 0; p->name; ++i, ++p) { p->proc = (void (*)())MemoryGetProcAddress(hmod, p->name); if (p->proc == NULL) { OutputDebugString("undef symbol"); fprintf(stderr, "undefined symbol %s -> exit(-1)\n", p->name); return 0; } } return 1; }