我想用java jni创建.dll。我的.cpp文件引用.dll的外部.lib。当我编译此文件(使用cl命令)时,我收到错误:
LNK2019: unresolved external symbol "__declspec(dllimport) unsigned long __stdcall ConnectDevice(char const *, unsigned long)"
(__imp_?ConnectDevice@@YGKPBDK@Z)... fatal error LNK1120: 1 unresolved externals
我可以从.cpp创建.dll,它使用另一个.lib& .dll文件?
答案 0 :(得分:2)
是的,你可以。您可以直接链接到它,将其放入一个.c / .cpp文件中:
#pragma comment(lib,"libname")
或在命令行上指定lib(对于MSVC不常见),或在IDE选项中指定。
确保找到您的DLL更棘手。如果两个DLL都保存在同一个文件夹中,并且没有使用SetDllDirectory()(异常),则应该找到它。
有一些像Dependancy Walker(depends.exe)这样的工具可以帮助解决这些问题。或者Process Explorer(procexp)[请google]可以为每个进程显示加载的DLL(ctrl + d)。