第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在這種情況下,java 對象可以調(diào)用本機函數(shù)嗎?

在這種情況下,java 對象可以調(diào)用本機函數(shù)嗎?

Helenr 2021-12-10 16:23:56
Java 可以使用 JNI 調(diào)用本機函數(shù)。這意味著我可以在我的 C++ 程序中運行一個 JVM,并通過 JNI 僅使用指針構(gòu)造 java 對象。并且在這個java對象中,可以調(diào)用本地函數(shù)來訪問運行C++程序中的數(shù)據(jù)。它運行成功。但是,如果我只是運行 C++ 程序并將一個對象的指針提供給 java 程序。在java中,我可以使用這個指針構(gòu)造許多對象來調(diào)用C++中的本地函數(shù)嗎?不同的是我沒有在JNI中構(gòu)造java對象而只是在C++中獲取對象的指針,然后在java中我調(diào)用本地函數(shù)來使用JNI訪問C++中的數(shù)據(jù)。數(shù)據(jù)存儲在正在運行的 C++ 程序中。那么這可能嗎?C++ 程序可以有一些保護嗎?所以我不能通過對象的指針訪問它的數(shù)據(jù)?
查看完整描述

2 回答

?
撒科打諢

TA貢獻1934條經(jīng)驗 獲得超2個贊

在 Java 中,您只能調(diào)用為 JNI 構(gòu)建的 C++ 函數(shù)。另一方面,C++ 動態(tài)庫中的任何 JNI 函數(shù)都可以從 Java 中調(diào)用,惡意 Java 程序可以對您的 JNI 進行逆向工程,并利用它來利用您的 C++ 代碼中的某些漏洞。


查看完整回答
反對 回復(fù) 2021-12-10
?
米琪卡哇伊

TA貢獻1998條經(jīng)驗 獲得超6個贊

謝謝。我發(fā)現(xiàn)我認(rèn)為 JNI 在錯誤的情況下。我知道 JNI 可以做什么,但忽略了一些重要的事情。

我想問的問題是,能否將C++中的對象指針轉(zhuǎn)換為java對象,并調(diào)用其原生函數(shù)來訪問C++中對象的數(shù)據(jù)。實際上,我需要在 C++ 進程中創(chuàng)建 JVM 來將指針轉(zhuǎn)換為 Java 或者只是在 Java 進程中調(diào)用本機函數(shù)。并且當(dāng)它們是兩個進程時沒有辦法做到這一點,這意味著我運行一個 C++ 進程并將其一個對象的指針提供給另一個正在運行的 Java 進程,然后我想通過調(diào)用 Java 進程中的本機函數(shù)來訪問 C++ 進程中的數(shù)據(jù).

一個進程擁有自己的內(nèi)存資源,另一個進程無法通過其本機函數(shù)調(diào)用 (JNI) 訪問。進程可以通過許多方法進行通信,例如套接字。


查看完整回答
反對 回復(fù) 2021-12-10
  • 2 回答
  • 0 關(guān)注
  • 175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號