最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

JNA技術(shù)的簡單流程_C++方面

2022-07-30 15:53 作者:DiLinging  | 我要投稿

1 打開IDE

在桌面上或開始菜單中進行搜索,點擊

打開C++ IDE

2新建項目

點擊

選擇 創(chuàng)建新項目

3新建項目

若沒有請在上方條形搜索框中進行搜索

選擇 具有導(dǎo)出項的(DLL)動態(tài)鏈接庫 并點擊 下一步,更改項目名(以下記為$N,以$N指代此處您創(chuàng)建的工程名,但請不要用$N作為工程名),點擊創(chuàng)建,記下您工程的位置

4:檢查先決條件

檢查界面中是否有解決方案資源管理器,沒有則在上方 視圖(V) 選項卡下 選擇 解決方案資源管理器(P)

如圖第一項

4 打開 源文件

打開解決方案資源管理器中的 源文件 選項卡左側(cè)的三角形,

如圖,點擊紅色框中三角形,使其成為 ▽ 狀圖形

下方會顯示三個后綴為.cpp的文件

圖中未顯示部分為工程名,本篇中也記為$N

5打開文本編輯器,準備編輯$N.cpp

雙擊$N.cpp文件并打開

雙擊此處名為$N.cpp的源文件,位于第四步圖中位置

可以看見打開了文本編輯器

遮擋部分為$N

6在示例函數(shù)下方編寫需要導(dǎo)出的函數(shù)????

如圖紅色框內(nèi)

首先聲明函數(shù),仿照上方 $N_API 返回值類型 函數(shù)名(參數(shù)列表){

????????? ? 函數(shù)的具體實現(xiàn)

? ? ? ? ? ? ?return 返回值;
? ? ? ? ? }

返回值類型- C++中的數(shù)據(jù)類型,如int,bool等基本數(shù)據(jù)類型和 string等其他數(shù)據(jù)類型

函數(shù)名 一個符合標準的名字(見下),最好能表明函數(shù)用途

參數(shù)列表 包含 數(shù)據(jù)類型 變量名 , ..數(shù)據(jù)類型 變量名 , ....... 調(diào)用的時候需要指定這一數(shù)據(jù)的值,交給函數(shù)體處理.也就是 輸入 的值

返回值 最后交給函數(shù)調(diào)用者的數(shù)據(jù)


如,在$N為DLL的源文件中,編寫一個求和函數(shù),函數(shù)名為sum,參數(shù)列表int a 和 intt b ,返回值類型也為int,則應(yīng)當(dāng)如下

函數(shù)具體實現(xiàn)即函數(shù)體可以省略,但其他部分不可省略

此函數(shù)包含了 聲明 DLL_APIint sum(int a,int b);兩部分和對它的定義兩部分

注意:請正確拼寫函數(shù)名,請不要使用非ASCII字符來命名函數(shù),請使用大駝峰(從第一個有效單詞開始,首字母 大寫 不大寫 大寫...),或小駝峰(同大駝峰,但首字母為 小寫 大寫 小寫...)命名較長的函數(shù).?

注意為了JNA技術(shù)的另一頭 Java ,您可能還需要查閱 JNA中 C++和Java的數(shù)據(jù)類型映射表

來減少復(fù)雜類型的使用,用更簡便的返回值和參數(shù)類型;最好為基本數(shù)據(jù)類型,避免不必要的麻煩

注意 在實際工作中,將"函數(shù)值"(即運算后得到的結(jié)果)打印的意義是不大的,原因如下

1:平常使用的cout(C++),System.out.println(Java)中,其實占用較多資源

2:只打印不返回,相當(dāng)于連貫的程序在此 斷了 ,下方程序無法知曉"運算"結(jié)果(返回值)

3:一般習(xí)慣將內(nèi)容打印到日志,而不是使用控制臺輸出,這樣做對debug有意義,但不大,缺少日志那樣的嚴格體系.

注意 請使用具體的數(shù)據(jù)類型 返回值類型 函數(shù)體 函數(shù)名等來替換上述和下述格式中的中文

因此,您應(yīng)當(dāng)將結(jié)果作為返回值進行返回,以此完成 C++和Java的混合編程

7 打開頭文件

選擇 頭文件選項卡左側(cè)的三角形,并且單擊此處

單擊紅色框內(nèi)三角形使其呈現(xiàn) ▽ 樣式

可以看見下方展開的三個.h頭文件

三個頭文件

雙擊$N.h頭文件進入文本編輯器界面

如圖,$N為 DLL

8:編寫頭文件

找到頭文件文本的最后一行

如圖紅框所在行

單擊并編寫文本,格式為

extern "C" $N_API 返回值類型 函數(shù)名(參數(shù)列表);

(注:如 extern "C" DLL_API int sum(int a,int b); 條件在第五步中.)

您發(fā)現(xiàn)了嗎,在 extern "C" 后方的內(nèi)容和函數(shù)聲明是完全一致的,您只需要將您已經(jīng)在$N.cpp中寫好的函數(shù)的定義復(fù)制到此處,并加上分號即可

(extern "C"? 的作用 表明此函數(shù)在連接時按照C語言標準,而不是C++標準,解決函數(shù)意外重載和標準不同等問題)

如上述的sum函數(shù)應(yīng)當(dāng)寫

聲明函數(shù)導(dǎo)出

完成后,您就可以選擇上方選項卡中的 生成(B)?,選擇 生成解決方案(B) 并單擊了

稍作等待,如下方提示有錯誤,請仔細檢查是否有遺漏和其他錯誤.若顯示

則可以關(guān)閉IDE,找到此處

位于工程文件夾中

雙擊 ”x64“ 文件夾

雙擊此處

雙擊”Debug“文件夾

雙擊此處

然后找到后綴為.dll的動態(tài)鏈接庫文件即為 JNA技術(shù)所需的 C++代碼


JNA技術(shù)的簡單流程_C++方面的評論 (共 條)

分享到微博請遵守國家法律
开原市| 凉城县| 吕梁市| 马龙县| 江西省| 上杭县| 马公市| 武定县| 郸城县| 德格县| 夏邑县| 洪洞县| 大同县| 都昌县| 南澳县| 安龙县| 铁力市| 洛扎县| 玉龙| 东宁县| 曲阜市| 兰溪市| 岳普湖县| 松溪县| 阿克苏市| 扎鲁特旗| 湖南省| 彭泽县| 清流县| 始兴县| 大悟县| 永宁县| 新乐市| 玛多县| 东明县| 南部县| 周宁县| 大港区| 乌兰察布市| 玉环县| 五常市|