Problem with the TurboFloat library package for Windows, Version 5.0.3.0.Answered

Hi,

I think there's a problem with the TurboFloat library package for Windows, Version 5.0.3.0.  The function names in the x86 lib file don't have the underscore prefix, so I get unresolved externals when I try to build with it.

The file is this one:
   bin-windows\x86\additional\linker\TurboFloat.lib

E.g. after using 7 zip to open it and looking in 2.txt:


Version 4.4.4.0
4.TurboFloat.dll    _TF_Cleanup
5.TurboFloat.dll    _TF_DropLease
6.TurboFloat.dll    _TF_GetFeatureValue
...

Version 5.0.3.0
4.TurboFloat.dll    TF_Cleanup
5.TurboFloat.dll    TF_DropLease
6.TurboFloat.dll    TF_GetFeatureValue

Thx.

Answer

Much more information is needed. We do trim unneeded exports from time-to-time, but the non-underscore exports have been there since the first version of TurboFloat.

What's the exact message from your compiler. Also, make sure you're actually linking to the correct TurboFloat.lib file and using the correct TurboFloat.dll (version match, architecture match, etc.).

We're using Embarcadero C++ Builder, the linker errors are:

[ilink32 Error] Error: Unresolved external '_TF_GetHandle' referenced from ...\WIN32\DEBUG\LIMELM.OBJ
[ilink32 Error] Error: Unresolved external '_TF_HasLease' referenced from ...\WIN32\DEBUG\LIMELM.OBJ
[ilink32 Error] Error: Unresolved external '_TF_DropLease' referenced from ...\WIN32\DEBUG\LIMELM.OBJ
[ilink32 Error] Error: Unresolved external '_TF_GetFeatureValue' referenced from ...\WIN32\DEBUG\LIMELMEXPIRYDATE.OBJ
[ilink32 Error] Error: Unresolved external '_TF_IsDateValid' referenced from ...\WIN32\DEBUG\LIMELMEXPIRYDATE.OBJ
[ilink32 Error] Error: Unresolved external '_TF_PDetsFromByteArray' referenced from ...\WIN32\DEBUG\LIMELM.OBJ
[ilink32 Error] Error: Unresolved external '_TF_SetLeaseCallback' referenced from ...\WIN32\DEBUG\LIMELM.OBJ
[ilink32 Error] Error: Unresolved external '_TF_SaveServer' referenced from ...\WIN32\DEBUG\LIMELM.OBJ
[ilink32 Error] Error: Unresolved external '_TF_RequestLease' referenced from ...\WIN32\DEBUG\LIMELM.OBJ

I've double checked all versions and they are correct.  I do have to convert the library from COFF to OMF format but I have some scripts for that and it's all worked perfectly until now.  Also there's no problem with TurboActivate 5.0.2.0.

I'll try to generate the lib files directly from the DLL and see if that helps.

Thanks.