5 回答

TA貢獻1757條經驗 獲得超8個贊
調用格式如下:
[DllImport("ex.dll", EntryPoint = "method")]
public static extern void method(int a);
其中ex.dll為C++DLL名,method為函數名, 這里的int a為C++中方法的參數轉換。
例:C++DLL名:Interface.dll,函數為voidCopMemFree(void *vp);
調用格式為:
[DllImport("Interface.dll", EntryPoint = "CopMemFree")]
public static extern void CopMemFree(IntPtr vp);
其實C#調用C++dll主要就是C++與C#的參數轉換比較困難。

TA貢獻1807條經驗 獲得超9個贊
在main函數中調用其中定義的變量,直接調用就可以了。
public class Test{
public static void main(String[] args){
int data = 15; //定義的局部變量。
mathod_a(data); //在靜態方法中調用,你遇到的問題應該是這個吧。這里的方法必須是靜態的。
B b = new B();
b.method_b(data);//定義一個對象,在對象的方法中調用。
}
public static void method_a(int num){
System.out.println("method_a調用main中的變量");
}
}
class B{
method_b(int num){
System.out.println("method_b調用main中的變量");
}
}
添加回答
舉報