当前位置:编程学习 > JAVA >>

多语言编程

我用c++做的一个对话框可以通过接收Java界面通过命令行传递的参数用exec来调用,但是Java怎么接收c++的数据呢?比如c++中用print输出到命令行, --------------------编程问答-------------------- java也可以哩。用System.out.println();可输出到命令行窗口。
用runtime执行命令 --------------------编程问答-------------------- 不是啊,我用exec来启动c++的程序而且通过命令行给c++参数了,但是我还想c++把c++运算的结果给Java。
我不想用jni,因为,c++有好几个文件,头文件。 --------------------编程问答--------------------
try { 
    // Execute command 
    String command = "ls"; 
    Process child = Runtime.getRuntime().exec(command); 
    // Get the input stream and read from it 
    InputStream in = child.getInputStream(); 
    int c; 
    while ((c = in.read()) != -1) {
         process((char)c); 
    } in.close(); 
} catch (IOException e) {
    ... // do something
--------------------编程问答-------------------- 开socket吧 --------------------编程问答-------------------- 我还没碰到过楼主类似的问题来着·· --------------------编程问答-------------------- 是这样的,Java界面上的按钮接收用户操作,我又用c++做了个对话框在被Java第一次调用时,对话框可见,让用户选择串口号,在用户按对话框确定后对话框隐藏,但为退出。但是我不知道怎样使得c++的那个程序只要运行起来就一直可以随时的接收Java传的参数,来按照Java传的参数给串口发送相应的数据,同时还能实时的给Java返回值 --------------------编程问答-------------------- JNA

http://www.fengfly.com/plus/view-175722-1.html --------------------编程问答-------------------- 谢谢,我去找个com.sun.jna包
--------------------编程问答-------------------- package 混合编程试验;
//~--- JDK imports ------------------------------------------------------------
import com.sun.jna.Library;
import com.sun.jna.Native;
class Main {
    public static void main(String[] args) {
        int m=CLibrary.INSTANCE.add(1,2);
    }
    public interface CLibrary extends Library {
       CLibrary INSTANCE = (CLibrary) Native.loadLibrary("test", CLibrary.class);
        int add(int a,int b);
    }
}

这个运行时为什么总出现这个错误
run:
Exception in thread "main" java.lang.UnsatisfiedLinkError: Error looking up function 'add': ÕҲ»µ½ָ¶¨µ
        at com.sun.jna.Function.<init>(Function.java:126)
        at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:219)
        at com.sun.jna.Library$Handler.invoke(Library.java:191)
        at $Proxy0.add(Unknown Source)
        at 混合编程试验.Main.main(Main.java:7)
Java Result: 1
成功生成(总时间:2 秒)
其中的test.dll我已经放在正确的目录下了,而且,还做了个c++exe试验过,可以调用test.dll的,但为什么用Java调用时总出错? --------------------编程问答-------------------- 有点高级 --------------------编程问答--------------------
引用 9 楼 hillence 的回复:
package 混合编程试验;
//~--- JDK imports ------------------------------------------------------------
import com.sun.jna.Library;
import com.sun.jna.Native;
class Main {
  public static void main(Strin……


我也遇到了同样的问题,敢问LZ解决了么? --------------------编程问答-------------------- 我也是,请问怎么解决呢 --------------------编程问答-------------------- 通过共享的输入输出窗口来交换数据,比如在你打开c++程序时将你用Java打开的dos窗口的句柄给c++的程序,在c++程序中用这个dos窗口作为输出,java接收
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,