呵.没有试过..也很想知道..cobra 行不?

解决方案 »

  1.   

    同意 yjsyjs(yjsyjs) ( ) 的意见
    具体实现到C++版去问问看。
      

  2.   

    java 通过jni调用c++,c++ 不能调用 java.corba的调用属于组件间的调用,和搂主的意思大相径庭。
      

  3.   

    yjsyjs(yjsyjs)你可能理解错误了我是想在C++中调用Java的库而不是想在Java中调用C++的库,后者我知道怎么用。但是前者好像没有什么讨论的。asdmonster(努力学习VC,讨回失去的信誉分) 理解我的意思了。
      

  4.   

    在C++中可以通过JNI调用Java中的方法,给你个例子int main()
    {
      JavaVMOption options[1];
      JNIEnv *env;
      JavaVM *jvm;
      JavaVMInitArgs vm_args;
      long status;
      jclass cls;
      jmethodID mid;
      jint square;
      jboolean not;  options[0].optionString = "-Djava.class.path=.";
      memset(&vm_args, 0, sizeof(vm_args));
      vm_args.version = JNI_VERSION_1_2;
      vm_args.nOptions = 1;
      vm_args.options = options;
      status = JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args);  if (status != JNI_ERR)
      {
        cls = (*env)->FindClass(env, "Sample2");
        if(cls !=0)
        {   mid = (*env)->GetStaticMethodID(env, cls, "intMethod", "(I)I");
            if(mid !=0)
            {  square = (*env)->CallStaticIntMethod(env, cls, mid, 5);
           printf("Result of intMethod: %d\n", square);
            }        mid = (*env)->GetStaticMethodID(env, cls, "booleanMethod", "(Z)Z");
            if(mid !=0)
            {  not = (*env)->CallStaticBooleanMethod(env, cls, mid, 1);
           printf("Result of booleanMethod: %d\n", not);
            }
        }    (*jvm)->DestroyJavaVM(jvm);
       return 0;
      }
      else
        return -1;
    }
      

  5.   

    你可以自己查看一下jni.h头文件,里面包含了所有可用的方法。
      

  6.   

    或者你可以将这些class编译成type library,这样直接可以使用COM来调用。
      

  7.   

    谢谢punpuny(),你说的编译成Type Library是如何编译法?JB中如何操作,谢谢。。明天给分,希望大家可以再说说其他见解
      

  8.   

    好像核心技术2中有,不然就是核心1。有c++调JAva和java调C++
      

  9.   

    完了,我的IE出毛病了,想给分竟然点了之后什么反映也没有,状态条中显示“Error on Page”,倒~~~~~
      

  10.   

    C/C++的论坛肯定是不会管这个问题的。
    楼主好好学习一下JNI,就可以解决这个问题了。
      

  11.   

    Java通过JNI调用C,C也能通过JNI调用Java