The first thing to do is make sure your exported ordinals are not being mangled. Name mangling (or name decoration) is used to ensure type safe linking of overloaded functions. What does this do? Well it will take a C function and export the ordinal like this "?MyFunction@@YGXXZ" instead of "MyFunction" which is the entry point LoadLibrary() is expecting. The way to stop this happening is turn off the name mangling for the functions you want to export.
extern "C"
{
void __stdcall MyFunction(void);
}