Java呼叫c,c++圖解(VS2012實現類庫)
一,Java部分,建立工程,建立一個類:
public class Huige {
static {
System.loadLibrary("HuiHui");
}
public native static int hui(int n);
public static void main(String[] args) {
int x;
Huige fhui = new Huige();
x = fhui.hui(5);
System.out.println(x);
}
1)分別生成Huige.class和 Huige.h檔案
2)開啟Huige.h 檔案,檢視內容如下
二,建立c,c++動態連線庫/* DO NOT EDIT THIS FILE - it is machine generated */ #include <jni.h> /* Header for class Huige */ #ifndef _Included_Huige #define _Included_Huige #ifdef __cplusplus extern "C" { #endif /* * Class: Huige * Method: hui * Signature: (I)I */ JNIEXPORT jint JNICALL Java_Huige_hui (JNIEnv *, jclass, jint); #ifdef __cplusplus } #endif #endif
1)在Vs2012中建立動態連結庫
2)執行編譯,這時可能會報錯,提示jni.h找不到,需要將jni.h所在的檔案加入到專案的包含目錄中。可以在專案中點右鍵->屬性
3)建立Huige.h檔案,將前面生成的.h檔案內容引進去
4)在Huige.cpp檔案中寫程式碼,c語言實現內容,如下面從0加到n
// HuiHui.cpp : 定義 DLL 應用程式的匯出函式。 // #include "stdafx.h" #include "Huige.h" JNIEXPORT jint JNICALL Java_Huige_hui (JNIEnv *, jclass, jint n){ int x=0; for(int i=0;i<n;i++){ x+=i; } return x; }
5)重現生成後,找到Huige.dll檔案,將其和Huige.class檔案放入jak的bin下,執行。
相關推薦
Java呼叫c,c++圖解(VS2012實現類庫)
一,Java部分,建立工程,建立一個類: public class Huige { static { System.loadLibrary("HuiHui"); } public native static int hui(int n); public st
C++ using關鍵字作用 (過載父類函式)
1.在當前檔案中引入名稱空間 這是我們最熟悉的用法,例如:using namespace std; 2.在子類中使用 using 宣告引入基類成員名稱(參見C++ primer) 在private或者protected繼承時,基類成員的訪問級別在派生類中更受限:
正則表達式(Java,C#,C++)
matcher expr com mar mat c# ever arr reac Java import java.util.Arrays; import java.util.regex.Matcher; import java.util.regex.Pattern;
hdu 2015 偶數求和(陣列,呼叫函式,c語言)
hdu 2015 偶數求和 點選做題網站連結 題目描述 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem Description 有一個長度為n
hdu 2014 青年歌手大獎賽_評委會打分(陣列,呼叫函式,c語言)
hdu 2014 青年歌手大獎賽_評委會打分 點選做題網站連結 題目描述 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem Descriptio
C,C++,C#,Java?這些有什麼區別?
C語言: 目前最著名、最有影響、應用最廣泛的windows、linux和UNIX三個作業系統都是用C語言編寫的。0S是計算機系統(由軟硬體兩個子系統構成)的核心和靈魂,它是軟體中最龐大最複雜的系統軟體。既然如此龐大複雜的0S都可以用c語言編寫,從狹義而言,還有什麼系統軟體和應用軟體不能用c語言編
轉載 -- 如何設計一門語言(六)——exception和error code c,c++ 還沒看
如何設計一門語言(六)——exception和error code http://www.cppblog.com/vczh/archive/2013/06/10/200920.html 如何設計一門語言(六)——exception和error code 我一直以來對於e
Python、Java 薪資最高,C# 墊底:分析什麼程式語言最賺錢!
本文主要用Python爬取拉勾網不同程式語言職位資訊,包括Python崗、Java崗、C++崗、PHP崗、C#崗位(5崗),再用R語言對影響薪資的因素進行分析。由於拉勾網的職位資訊只顯示30頁,一頁15個職位資訊,如果單獨爬取一個城市的崗位資訊,只有幾頁是匹配的資訊,資訊量太小,分析沒有說服力。因此,本文爬取
Java呼叫REST API介面例項(get,post方法)
public class RestUtil { //get public void getMethod(String url) throws IOException { URL restURL = new URL(url); HttpURLConn
c++11 條款22:當使用Pimpl(指向實現的指標)時,在實現檔案裡定義特定的成員函式
條款22:當使用Pimpl(指向實現的指標)時,在實現檔案裡定義特定的成員函式 假如你曾經和過多的編譯構建時間抗爭過,你應該熟悉Pimpl(指向實現的指標)這個術語。這項技術是你可以把類的資料成員替換成一個指向實現類(結構)的指標,把原來在主類中的資料成員
這段代碼,c 1秒,java 9秒,c# 14秒,而python。。。
寫代碼 clu read art con code 身後 and 應用程序 哎,不得不說最近見得鍵盤俠客太多了,做程序員沒兩天總是喜歡上嘴唇觸天,下嘴唇碰地的吹。 自己分明都沒用過幾門語言,就對各門語言評頭論足說三道四,這麽語言多好那門語言有多爛。 可能是隨著時間也變得沒那
Matlab安裝MinGW-w64實現c,c++以及fortran編譯(親測有效)
matlab固然強大,其中的simulink更是理工科模擬、建模研究中不可缺少的工具,一般而言matlab/simulink能滿足多數使用要求,但是往往在研究中會使用User-difinition s-function或者呼叫c,c++的庫函式,這時候就需要matla
C語言 Include指令(引用頭文件)
clas fff const con ack style span pan har #include "one.h" #include "two.h" int main(int argc, const char * argv[]) { one(
詳解C# Tuple VS ValueTuple(元組類 VS 值元組)
edit 成員 擴展 ati art info ets 簡單 ole C# 7.0已經出來一段時間了,大家都知道新特性裏面有個對元組的優化,並且網上也有大量的介紹,這裏利用詳盡的例子詳解Tuple VS ValueTuple(元組類VS值元組),10分鐘讓你更了解Value
c++ 設計模式8 (Factory Method 工廠方法)
更改 itl logs 客戶 eos image 分享 一個 工廠方法模式 5. “對象創建”類模式 通過“對象創建”類模式繞開new,來避免對象創建(new)過程中所導致的緊耦合(依賴具體類),從而支持對象創建的穩定。它是接口抽象之後的第一步工作。 5.1 工廠方法 動機
Json.net實現方便的Json轉C#(dynamic動態類型)對象
bar 方便 api lba c# oid tool 可能 情況 以前需要將一段json字符串轉換為C#對象時,一般都是定義一個與之對應的實體類來接收。這樣做有一個很大的缺點,就是當字符串特別長,屬性特別多,又有嵌套時,手敲這個實體類就非常痛苦。 比如之前做的一個接收百度七
關於C語言中的Complex(復數類型)和imaginary(虛數類型)
http 個人 time 編譯 pop oat float environ real 關於C語言中的Complex(復數類型)和imaginary(虛數類型) 其實這裏的復數complex就是數學裏的復數,包含實部和虛部兩個部分,比如:x=2.1+6i,下面進行詳細介紹
C,C++輸入輸出
函數功能 oid 輸入 缺省 char void sin 溢出 urn C語言: 1. scanf printf %c %s %d %lld scanf %s 遇見“ ”或者回車等就結束 scanf %c 可以讀取空格; 2. ge
(轉)C# :base的用法(冒號後面的base)
new class pan client isp obj logs 重寫 http c# 中關於: base()用法,在此記錄一下,方便查閱 1.this是標識當前資源對象的,而base是基於父級的。 2.base發揮了期靈魂級的作用——多態 3.base子類可以訪
Swift,Objective-C,C,C++混合編程
cti obj 文件中 執行 head swift項目 引入 xcode 頭文件 (1)Swift與C語言通信 在xcode中,當在Swift項目裏添加C語言文件是,xcode會詢問是否Create Bridging Header,選擇是。 然後在Bridging Head