How to pass a class by (const) reference to C++

rikki cattermole rikki at cattermole.co.nz
Wed Dec 15 11:03:27 UTC 2021


On 15/12/2021 11:54 PM, Jan wrote:
> On Wednesday, 15 December 2021 at 09:36:54 UTC, Jan wrote:
>> Unfortunately it's the "annoying little details" that I immediately 
>> bumped into.
> 
> Just another example: I just learned that linking against C++ DLLs is 
> quite limited. I ran into the issue that linking in an external variable 
> doesn't work (even though the mangled name that D chooses is correct), 
> because DLLs work differently than static linking does.
> Someone with more in-depth knowledge told me, that Windows support in D 
> and specifically DLL support is lacking quite a bit.
> 
> Having *only* link compatibility is totally fine, D currently just 
> doesn't fulfill that promise, especially not on Windows and especially 
> not with DLLs.

Are you sure that on the shared library side it was marked as exported?

If a symbol is not exported, there is no guarantee (nor reason to think) 
that it will be visible during runtime linking to said shared 
library/executable.

This isn't unique to D, its just how linkers work.


More information about the Digitalmars-d-learn mailing list