that code will crash due to mismatched calling conventions.
additionally, stdcall functions must generally be exported using .def files, to avoid additional name mangling (and cannot support variable arguments).
Its generally easier to just stick with the default cdecl calling convention, if its an api defined by yourself and limited to just C/C++ code.
Also, you can use LoadLibraryA and get rid of the pointless 'TEXT' macro.
memory malloced within one module must be freed within that module. each module has its own set of runtimes, which may be incompatible or use globals. If you have a Create function, you must also have a Destroy function within the same module (windows' COM stuff gets around this by the refcounted Release function being within the module that allocated the object, thus avoiding the use of free on random objects).