在学习jni时遇到该问题:
我有一个.h文件和一个.cpp文件,代码如下现在想用vc++生成dll文件,请问如何做?请指教。//////////////HelloWorld.h////////////
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HelloWorld */#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     HelloWorld
 * Method:    displayHelloWorld
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld
  (JNIEnv *, jobject);#ifdef __cplusplus
}
#endif
#endif///////////////HelloWorldImp.cpp///////////////////
#include "jni.h"
#include "HelloWorld.h"
#include "stdio.h"JNIEXPORT void JNICALL 
Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj) 
{
    printf("Hello world!\n");
    return;
}

解决方案 »

  1.   

    Vc新建项目的时候选择dll类型, 然后把.h和cpp文件倒进去, 编译出来就是dll文件
      

  2.   

    我选择了win32 dynamic-link library =〉a simple dll
    可是在project=〉add file to project后编译出错提示信息:
    fatal error C1083: Cannot open precompiled header file: 'Debug/hello.pch': No such file or directory出错位置:
    jni\helloworldimp.cpp第一行///////////////HelloWorldImp.cpp///////////////////
    #include "stdafx.h"
    #include "jni.h"
    #include "HelloWorld.h"
    #include "stdio.h"JNIEXPORT void JNICALL 
    Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj) 
    {
        printf("Hello world!\n");
        return;
    }
      

  3.   

    解决了,用 a dll that exports some symbols 就可以了
      

  4.   

    将C:\Program Files\Java\jdk1.6.0_16\include下的jni.h文件复制到C:\Program Files\Microsoft Visual Studio\VC98\Include目录中
    不行再把C:\Program Files\Java\jdk1.6.0_16\include\win32的jawt_md.h和jni_md.h也copy到C:\Program Files\Microsoft Visual Studio\VC98\Include中~~~~~~