This forum is deprecated.
Hi everyone, I wonder if someone can help me?I am trying to use the IMPLIB tool in the simplest possible usage case. I just want to transform a DLL into a corresponding import library. This is pretty straightforward and works with a 32 bit DLL as input just as expected ie:implib.exe ftd2xxtest.lib ftd2xx.dllThe file that results, ftd2xxtest.lib looks sensible and has a non-zero filesize and works when I incorporate it within builds. So far so good!
However, in another app I also need to transform some 64 bit DLLs too into 64 bit import libraries. I tried to do this in exactly the same way as the 32-bit case ie
implib.exe ftd2xx64test.lib ftd2xx64.dllUpon further investigation though ftd2xx64test.lib output from implib has a 0-byte filesize, so is not useful! So IMPLIB fails silently without errors when passed 64-bit DLL as input.I looked for a 64-bit version of the tool ie IMPLIB64.exe in the bin64 directory of my RadStudio install but couldn't see this! What I am I doing wrong here, how can I obtain my 64-bit import library from my DLL? Do I need to pass some extra command-line switches to IMPLIB.exe?ThanksStephen
Right, further investigation of this issue, in particular with reference to this document ( https://www.nag.co.uk/doc/inun/cl26/w6i1el/supplementary.html ), suggests a fundamental misunderstanding on my part here. The clang-based BCC64.exe expects ELF format import libraries, rather than the OMF format files used previously with the RADStudo 32-bit compilers. It doesn't seem to be mentioned in the official Embarcadero docs anywhere that I could see, but it seems that the implib.exe cannot actually generate these ELF format import libraries. Consequently Embarcadero provide a new import library generation tool, mkexp.exe, that should now be used instead of IMPLIB for Win64 builds.With this tool the syntax is very similar to implib.exe, it is possible to simply do mkexp.exe ftd2xx64test.lib ftd2xx64.dll.Repeating my earlier test now I can obtain a non-zero length ftd2xx64test.lib that actually appears to be useful and valid.ThanksStephen
Yes, you need to use IMPLIB for 32-bit and MKEXP for 64-bit. These tools are documented on Embarcadero's DocWiki:
IMPLIB.EXE, the Import Library Tool for Win32
MKEXP.EXE, the 64-bit Windows Import Library Tool for C++
Thanks Remy. I'm going to have to stop using ddg for Embarcadero documentation searches I think, it fails to return useful links to Embarcadero's documentation in way too many cases...