Robert J. Hansen
rjh at sixdemonbag.org
Thu Dec 1 03:54:06 CET 2016
For long and boring reasons I need to be able to call GPGME from
Microsoft Visual C++. The MSVC linker requires .lib files, which are
not shipped with GnuPG. That's okay: the procedure to make them is
For each of libgpgme-11.dll, libgpg-error-0.dll, and libassuan-0.dll, I:
1. ran dumpbin /exports on it, to recover the function names
2. put these function names in a text file with "EXPORTS" at the top
3. ran lib /def:somefile.def /out:somefile.lib to create the .libs
(Insert appropriate filenames for "somefile", of course.)
A really basic test of GPGME passes: I can link against
gpgme_check_version and confirm the correct version of GPGME. However,
I can't actually *do* anything with it: gpgme_engine_check_version
continually throws an invalid engine error, and gpgme_get_dirinfo keeps
on returning nulls.
So, if I had to wager a guess, GPGME isn't able to find GnuPG.
My sample code runs just fine on OS X and Linux, incidentally, so I
doubt the problem is with it. (If people want to see it just to make
sure, I'm happy to provide it.)
Anyone have any ideas?
More information about the Gnupg-users