Files
Michael Fabian 'Xaymar' Dirks 2196cb8419 runtime: Formatting
2019-01-18 17:04:17 +01:00

40 lines
616 B
C++

#include "bbsys.hpp"
#include "std.hpp"
#include <windows.h>
static vector<HMODULE> _mods;
static void procNotFound()
{
ThrowRuntimeException("User lib function not found");
}
void _bbLoadLibs(char* p)
{
while (*p) {
HMODULE mod = LoadLibrary(p);
if (!mod) {
continue;
}
_mods.push_back(mod);
p += strlen(p) + 1;
while (*p) {
void* proc = GetProcAddress(mod, p);
p += strlen(p) + 1;
void* ptr = *(void**)p;
p += 4;
if (!proc)
proc = procNotFound;
*(void**)ptr = proc;
}
}
}
void _bbUnloadLibs()
{
for (; _mods.size(); _mods.pop_back())
FreeLibrary(_mods.back());
}