multiple windows dlls results in "entry point could not be located" depending on order
cartland
example at example.com
Thu May 27 08:33:20 UTC 2021
I have built 2 windows C dlls (ctst and ctst2) that I am calling
from a Dlang exe (dtstx). dumpbin shows the exports.
dpp was used to generate the d file from #includes.
All this works perfectly on Linux and MacOS.
(Are the generated d files portable? They seem to be. I have also
generated them on Windows just in case.)
dtstx calls ctst_init() and ctst2_init().
```
import c_libs;
int mymain(string[] args) {
string str = "dlang";
return ctst_init(str.toStringz) + ctst2_init(str.toStringz);
}
```
If I call just **one** of the fns ctst_init and ctst2_init, it
works.
However, calling **both** gives either of these errors:
In dub.sdl
```
libs "lib/ctst" "lib/ctst2" platform="windows"
```
causes dtstx to generate
```
---------------------------
dtstx.exe - Entry Point Not Found
---------------------------
The procedure entry point ctst2_init could not be located in the
dynamic link library ........\dtstx\bin\dtstx.exe.
---------------------------
```
In dub.sdl, reversing the order of the libs:
```
libs "lib/ctst2" "lib/ctst" platform="windows"
```
causes dtstx to generate
```
---------------------------
dtstx.exe - Entry Point Not Found
---------------------------
The procedure entry point ctst_init could not be located in the
dynamic link library ........\dtstx\bin\dtstx.exe.
---------------------------
```
More information about the Digitalmars-d-learn
mailing list