最近需要用NATIVE 根据网上的例子测试无数次都未能实现
原因总是说当用CL命令生成DLL文件时,找不到stdio.h
尝试将C的头文件放入 又有很多找不到文件
索性不所有头文件放入 答案的某个地方出了错
不知道为什么 请大侠说下
java文件
class HelloWorld {
public native void displayHelloWorld();
static {
System.loadLibrary("hello");
}
public static void main(String[] args) {
new HelloWorld().displayHelloWorld();
}
}
C实现
#include <"jni.h">
#include "HelloWorld.h"
#include
JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj)
{printf("hello");
return;}
用javah编译的头文件
/* DO NOT EDIT THIS FILE - it is machine generated /
#include
/ Header for class HelloWorld */
#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
#ifdef __cplusplus
}
#endif
#endif
用VC++6.0生成DLL文件
[img]http://www.iteye.com/upload/attachment/68127/fecb432d-328d-3561-ba1e-00f474095b0a.jpg[/img]
请问错在什么地方
出错原因在于,未将VC的Include和Lib包含进编译环境,用cl /h看看帮助。
另外解决方式:直接用JNative这个框架吧![url]http://jnative.free.fr/SPIP-v1-8-3/[/url]
你的vc6dll程序创建的对吗?win32dll???
我没有用C,而是用C++的创建的CPP文件,你换成C++的看看!
命令行编译有很多问题的,还需要配置LIB等等!你的问题应该是在当前路径下用命令行是不是也需要象java的本地库一样需要写出来的(-IC语言库路径等等)~