簡體   English   中英

在JNI創建的dll中使用dll的問題

[英]Problems with using a dll in a JNI-created dll

我正在一個Java項目中,我必須使用第三方dll(假設abc.dll)。 因此,我使用JNI創建了本地頭文件。

然后,我在vs2005(典型的win32應用程序)上創建了一個dll項目,並添加了JNI創建的頭文件。 我為該項目選擇了clr舊語法支持,並添加了abc.dll作為對我的項目的引用。

到目前為止,一切正常。 這是問題所在。 我使用abc.dll中的某些方法實現了頭文件中定義的方法。 abc.dll有一個名為“ abc”的類,這就是我的工作:

abc *abcObj = new abc(); abcObj->callSomeMethod();

我從解決方案開始構建,一切正常。 但是,當我運行Java程序時,我從JVM中收到一條錯誤消息,告知本機代碼已損壞?!?! 我調試了它,問題出在new()中。 它根本無法實例化abcObj。

然后我嘗試使用該abc.dll的C ++應用程序。 有效。

我認為JNI或該托管/非托管產品一定存在問題。 我沒有真正的c / c ++經驗,所以我不太了解(至少我現在沒有時間了解)。 我唯一想做的就是使用第三方dll創建包裝dll,並在我的Java應用程序中使用包裝dll。

任何幫助將不勝感激。

提前致謝...

-海達爾

編輯:我有我的第三方dll所需的所有dll。

我已經解決了問題。 問題是我將項目創建為Win32應用程序,然后選擇dll。 我創建了一個clr應用程序,一切順利。 我遵循了這里的指示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM