2011-06-07 59 views
1

我想用java jni創建.dll文件。我的.cpp文件引用.dll的外部.lib。當我編譯這個文件(CL命令),我得到錯誤:Java創建.dll文件

LNK2019: unresolved external symbol "__declspec(dllimport) unsigned long __stdcall ConnectDevice(char const *, unsigned  long)" 
    ([email protected]@[email protected])... fatal error LNK1120: 1 unresolved externals 

我可以從的.cpp .dll文件創建,它使用另一種的.lib & .dll文件?

+0

你真的與其他.lib鏈接嗎? – Xeo 2011-06-07 05:10:44

+0

@Xeo,我想要它;) – totali 2011-06-07 05:11:37

回答

2

是的,你可以。您可以直接鏈接到它,通過把這個放入你的.c/.cpp文件之一:

#pragma comment(lib,"libname") 

或指定命令行(不尋常的MSVC)上的lib,或在IDE選項。

更棘手的是確保找到您的DLL。如果兩個DLL都保存在同一個文件夾中,並且SetDllDirectory()沒有被使用(不尋常),那麼應該找到它。

有一些像Dependancy Walker(depend.exe)這樣的工具可以幫助解決這些問題。或進程資源管理器(procexp)[請谷歌],可以顯示每個進程什麼DLL加載(Ctrl + D那裏)。

+0

你說得對,thks – totali 2011-06-07 05:21:06