Hi everyone. My first post here - I'm not one to usually resort to trying to ask forums directly for help but I'm a bit desperate at this point as I have wasted about 3 days in total of no-life googling trying to figure something out here.

My current setup works fine for creation of EXE's and Static libs. Dynamic libs are the only problem. I have some libraries I created and used just fine with static libs that I'd like to start using dynamically as managing them with multiple projects has just become too cumbersome.

My setup uses Mono-D using -shared and -H(-shared should already be called as it already generated .lib and .dll files but I added again just in case) and creating a new EXE project and trying to use the functions from the generated .di files works fine -> As long as the lib was generated static. While attempting to use dynamic generated .lib I always get the error "Library Reference Missing".

On each of my source files I've attempted adding export extern(D): right after Module declaration(Which again works just fine when using static edition of .lib) as well as I've used this for the dllmain (Which has only been modified slightly from the ones in guides)

version(Windows) {
        import core.sys.windows.windows : HINSTANCE;
extern(Windows) bool DllMain(HINSTANCE hInstance, uint ulReason, void* reserved) {
                import core.sys.windows.dll, core.sys.windows.windows;
                switch(ulReason) {
                        default: assert(0);
case DLL_PROCESS_ATTACH: return dll_process_attach( hInstance, true ); case DLL_PROCESS_DETACH: dll_process_detach( hInstance, true ); return true;
                        case DLL_THREAD_ATTACH: return dll_thread_attach( true, 
true );
                        case DLL_THREAD_DETACH: return dll_thread_detach( true, 
true );
                }
        }
}


I've compiled EVERYTHING into x32 for windows and this being of course with the latest dmd2 compiler.

I'm all out of ideas here. From some of the threads I've come across researching the .def files that were in the main guides aren't needed as long as using the export extern(D): however whether or not they are actually needed or not -> Either the compiler or linker were throwing errors(I cant remember which).

I've even tried running .def made for example modules as well and it gave the same error so i know i wasn't just making it improperly.

I'm literally a couple tests from pulling my hair out so any wisdom on this issue would be greatly appreciated!

Reply via email to