???
我在网上搜了一下JNI的文章
有一个编译时候的问题:
cl -Ic:\java\include -Ic:\java\include\win32 -LD Hello.c -Fehello.dll但出了下面的错误:
Hello.c
Hello.c(1) : fatal error C1083: Cannot open include file: 'jni.h': No such file
or directory应该怎么弄才能找到jni.h呢?

解决方案 »

  1.   

    jni.h
    在$JavaHome/include/
    你要把这个冬冬加到你的搜索路径里
    或者
    cl -I$JavaHome\include -I$JavaHomeinclude\win32 -LD Hello.c -Fehello.dllPS:你的hello.c里的函数是按照要求声明的吗?否则即使编译通过,也不能运行的
      

  2.   

    你java装到哪里了?在那个目录下面有include目录的哦
      

  3.   

    可以了,谢谢!!~~
    我是copy的代码
      

  4.   

    问一下:
    我要实现访问outlook的地址簿
    现在是不是只能用c++?
    我对c++不熟,以前都是用vb开发的
    怎么才能快速的掌握方法实现这个功能呢?能介绍一下吗?
      

  5.   

    为什么无法编译windows的程序?
    比如printf("Hello");就可以正常运行结果
    但我在代码里面加上 MessageBeep(0); 编译就通不过
    错误如下:Microsoft (R) Incremental Linker Version 6.00.8168
    Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
     
    /dll
    /implib:hello.lib
    /out:hello.dll
    Hello.obj
       Creating library hello.lib and object hello.exp
    Hello.obj : error LNK2001: unresolved external symbol __imp__MessageBeep@4
    hello.dll : fatal error LNK1120: 1 unresolved externals去掉这条代码就能通过了,而我已经 #include <windows.h> 了
      

  6.   

    缺少包含函数MessageBeep的链接库,使用User32.lib.
      

  7.   

    cl -I$JavaHome\include -I$JavaHomeinclude\win32 -LD Hello.c -Fehello.dll 中  cl 是什么东东, 是java 的工具吗?
      

  8.   

    dyw(旺仔):
    代码中应该怎么使用呢?
    我的源代码是这样的:#include <jni.h>
    #include "HelloWorld.h"
    #include <stdio.h>
    #include <windows.h>JNIEXPORT void JNICALLJava_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj)
    {
        printf("Hello world!\n");//在这里实现java类中定义的方法
        MessageBeep(0);//调用到win本地,会发一声响
    //MessageBox (NULL, TEXT ("你好,欢迎来到VC之路"), TEXT ("欢迎"), 0) ; 
        return;
    }上面两个涉及WINDOWS的都不能运行, 但我问 写那篇文章的桂静秋
    他说他可以运行编译成功,他几个朋友也可以,好晕.
    要使用链接库, 应该怎么加代码呢?
      

  9.   

    Shrewdcat(丧邦&灵猫&潇):
    是VC的工具,编译器来的吧