I'm having trouble replicating the dynamic code loading from episodes 21-23.
I'm able to successfully load the .dll (i.e. LoadLibraryA returns a non-zero value) but each of my calls to GetProcAddress returns 0. I've done a decent amount of reading a fiddling, but I haven't been able to figure out the issue. If it matters, I compile everything from a Visual Studio 2013 project. Everything compiles without errors or warnings, and it correctly produces a Game.dll file.
Here are the relevant code sections:
Game.h:
|  | #define UPDATE_GAME(name) void name()
typedef UPDATE_GAME(update_game);
UPDATE_GAME(updateGameStub){}
#define RENDER_GAME(name) void name()
typedef RENDER_GAME(render_game);
RENDER_GAME(renderGameStub){}
 | 
Game.cpp:
|  | #include <Game.h>
extern "C" UPDATE_GAME(updateGame){
    return;
}
extern "C" RENDER_GAME(renderGame){
    return;
}
 | 
Platform.cpp:
|  1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18 | #include <Game.h>
#include <Windows.h>
[...]
    HMODULE GameCodeDLL;
    update_game* update;
    render_game* render;
    GameCodeDLL = LoadLibraryA(GAME_DLL_LOC);
    if (GameCodeDLL){
        update = (update_game*)GetProcAddress(GameCodeDLL, "updateGame");
        render = (render_game*)GetProcAddress(GameCodeDLL, "renderGame");
    }
    else{
        update = updateGameStub;
        render = renderGameStub;
    }
 | 
Does anyone know what the issue could be?