Tags: rockcavera/nim-mdlldk
Tags
- Added the `winim` package as a dependency; - Added compilation tips and errors; - Added custom `DllMain()`; - `NimMain()` is no longer called in `DllMain()`, as it calls WINAPI functions that should not be called in `DllMain()`; - `GC_fullCollect()` and `NimDestroyGlobals()` are called in `DllMain` when the dll is unloaded; - Compile with `-d:mdlldkNoDllMain` to add a custom `DllMain()`; - `NimMain()` is called from `LoadDll()` and from all procedures added with `newProcToExport()`, `newProcToExportW()` and `newProcToExportA()` if not already called; - The procedures mMajor(), `mMinor()`, `mBeta()`, `mUnicode()`, `mMaxBytes()`, `mKeepLoaded()`, `mMainWindowHandle()`, `mRawVersion()`, `mToCStringAndCopy()` and `mToWideCStringAndCopy()` are now independent of the use of the `addLoadProc()` template; - Added the `mInitialized()` procedure. - The `addAliasFor()` compile-time procedure is no longer exportable; - Added the `addAliasFor()` template; - Procedures added with `newProcToExport()` now call a procedure with the abstraction layer instead of adding abstraction code in every added procedure. However, the compiler can optimize and do inline. - All documentation comments at the top of the body of calls to `addLoadProc()`, `addUnloadProc()`, `newProcToExport()`, `newProcToExportW()`, `newProcToExportA()` and `addAliasFor()` are passed to the documentation generated by Nim with `nim doc`. - The minimum required Nim compiler is now version 2.0.0, due to the annotation with pragma `aliasFor` in templates generated with `nim doc`.