轻逐微风 发表于 2013-01-16 12:07

java调用DLL如何返回LPSTR即char*

比如C++的函数原型为 long returnResult(LPSTR)

调用函数返回ID,LPWSTR返回数据

LPSTR相当于char*

在C++中调用可以这样的话

char result;

ID=returnResult(result);

data=result

请问在java中如何得到这个result的值呢

tkchks 发表于 2013-01-16 13:04

public class Test {

        static String fReturn() {
                return "Hello!";
        }

        static void fArgNoWorkie(String s) {
                s = "What am I doing???"; // Doesn't "work"! Java passes by value!
        }

        static void fMutate(StringBuilder sb) {
                sb.append("Here you go!");
        }

        public static void main(String[] args) {
                String s = null;

                s = fReturn();
                System.out.println(s); // prints "Hello!"

                fArgNoWorkie(s);
                System.out.println(s); // prints "Hello!"

                StringBuilder sb = new StringBuilder();
                fMutate(sb);
                s = sb.toString();
                System.out.println(s); // prints "Here you go!"
        }

}

参考:http://stackoverflow.com/questions/2824910/how-to-use-an-output-parameter-in-java

方兆国 发表于 2013-01-16 17:46

话说我用了native后产生的那个.h头文件里面引用的jni头文件,我不管怎么弄,都提示那个地方有错
页: [1]
查看完整版本: java调用DLL如何返回LPSTR即char*