On Sunday, 2 July 2017 at 05:33:45 UTC, Damien Gibson wrote:
K im retarded... So I forgot the golden rule, debug libs with debug app, release libs with release app.. I attempted loading the debug version of dll with D again just to see what kinda errors (may) come up there, sure enough there is and i get a fairly detailed one... However, when the function ConsoleWrite is called in either project, it goes back to the close bracket on the myclass.d page(The original myclass.d from the actual dll source code) and then re[prts stdio.d "in gc_malloc"


Ahh, you need to initialise the D runtime before you call any functions that depend on it (e.g. ones that interact with the file system).

declare
    extern "C" int rt_init();
in your c++ code and call it before ConsoleWrite and it should work.


At this point I am thoroughly confused... It has only done this since adding the extern(C) tag to the source... even changing that to C++(Where depends.exe reports a garbled mess of a name again) still reports the same issue.

That "garbled mess" is the microsoft C++ mangling of the symbol, its supposed to look like that.

Reply via email to