java 调用本地dll时,用vc6编译dll时出现错误,怎样将d:\jdk\include包含进去

kevinc 2003-12-23 11:20:20
本人不会vc,但最近要用java调用dll,dll用vc编写,但在编译的过程中出错,具体步骤如下

先写java文件MyNative.java
public class MyNative
{
public void showParms( String s, int i, boolean b )
{
showParms0( s, i , b );
}

private native void showParms0( String s, int i, boolean b );

static
{
System.loadLibrary( "MyNative" );
}
}

编译生成MyNative.class
javah -jni MyNative 生成头文件 MyNative.h

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class MyNative */

#ifndef _Included_MyNative
#define _Included_MyNative
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: MyNative
* Method: showParms0
* Signature: (Ljava/lang/String;IZ)V
*/
JNIEXPORT void JNICALL Java_MyNative_showParms0
(JNIEnv *, jobject, jstring, jint, jboolean);

#ifdef __cplusplus
}
#endif
#endif

编写MyNative.c
#include <stdio.h>
#include "MyNative.h"
JNIEXPORT void JNICALL Java_MyNative_showParms0
(JNIEnv *env, jobject obj, jstring s, jint i, jboolean b)
{
const char* szStr = (*env)->GetStringUTFChars( env, s, 0 );
printf( "String = [%s]\n", szStr );
printf( "int = %d\n", i );
printf( "boolean = %s\n", (b==JNI_TRUE ? "true" : "false") );
(*env)->ReleaseStringUTFChars( env, s, szStr );
}

在vc 6中编译显示不能找到jni.h,怎么才能把jni.h包含进去

此程序来源为
http://www-900.ibm.com/developerWorks/cn/java/jnimthds/index.shtml

原例子中的编译工具时cl,但是不知道怎么配置cl工具,把cl.exe放到path变量中后,好多东西都找不到,甚至stdio.h也找不到,怎么办。

这个问题已经浪费我好长时间了,看那位大哥帮忙解决,谢谢。
...全文
23 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
YanbinQiu 2003-12-23
vc的tools->options->directories
include files新建一个,加上d:\jdk\include目录就行

程序里就可以include 那个jni.h文件了。


#include <jni.h>
改成
#include "jni.h"
试试看。
回复
zjq1980 2003-12-23
这可以到VC版去问了,哈。。。
回复
发帖
Java SE
创建于2007-09-28

6.1w+

社区成员

Java 2 Standard Edition
申请成为版主
帖子事件
创建了帖子
2003-12-23 11:20
社区公告
暂无公告