On 15/07/2017 5:31 AM, Damien Gibson wrote:
Hi. I find myself comming back here alot which is a little discouraging.
This time around, I have a dll im making, right now its 32bit using dmd
cause i have been getting better information when compile errors occur.
if i have a class in it, and i call export on all the functions i want
exposed and attempt to use this class in an application that calls
either a static or shared lib it fails to compile giving me an error:
Error 42: Symbol Undefined _D4asfw7network6server6server7__ClassZ
obj\Debug\serverApp.obj(serverApp)
Error 42: Symbol Undefined
_D4asfw7network6server6server6__ctorMFkZC4asfw7network6server6server
obj\Debug\serverApp.obj(serverApp)
Error 42: Symbol Undefined _D4asfw7network6server12__ModuleInfoZ
Error: linker exited with status 3
Exit code 3
I had compiled in LDC2 compiler and this particular error was extended a
little more to tell me that all 3 of these errors are caused on the
exact same line where i declare a class object i named socket (outside
of said function so its global) --
'socket = new Server(my param data);'
My main assumption was much less that the first and third error reports
meant anything significant in this case but moreso because it wasnt
finding the constructor which seems to me to point at the __ctor one.
However when i open the shared library with depends.exe the exact
'_D4asfw7network6server6server6__ctorMFkZC4asfw7network6server6server'
exists in the dll, just without the _ at the beginning so im thinking
maybe something about the .di file is making it think there should be a
_ at the beginning and maybe some way i can modify the di will make it
stop adding this because that function IS there.
Also i am not sure if this is a related issue, but i have another dll
which the above mentioned problem dll and app cant find some structures
i made unless i specificly compile it as a static library and the
structure does happen to be used IN the constructor of the server object
that keeps failing.
Any help would be appreciated ive been trying to figure out what the
heck to do with this for about 2 days now and not getting an inch further.
TypeInfo doesn't cross the dll boundary atm on Windows.
Known bug.
Which means no classes or exceptions.
https://issues.dlang.org/show_bug.cgi?id=4071