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