我要用JNI调用VC++写的DLL(MyNative.dll), MyNative.dll中又要调用dephi写的DLL(mjSDKDLL.dll)
#include <stdio.h>
#include <string.h>
#include "MyNative.h"
#include "windows.h"
#include <jni.h>JNIEXPORT void JNICALL Java_MyNative_HelloWord (JNIEnv *env, jclass jobject) { printf("hello word!\n");}JNIEXPORT jstring JNICALL Java_MyNative_cToJava(JNIEnv *env, jclass obj, jstring strTime) { HINSTANCE hDLL; hDLL = LoadLibrary("mjSDKDLL.dll");
if (hDLL != NULL)
printf("good %d\n", hDLL);
else
printf("bad\n");
//typedef bool(*IFInitInterface)(int a,int b,LPCTSTR c); typedef int(FAR __stdcall *pMin)(int a);
// typedef int (FAR __cdecl *pMin)(int);
//typedef int (*pMin)(int port);stdcall
pMin myproc = NULL; myproc = (pMin)GetProcAddress(hDLL,"InitlComm"); if(myproc == NULL) {
printf("can't find function <went> \n"); }else { //myproc(1);
}
FreeLibrary(hDLL); return jstr;
}
#include <stdio.h>
#include <string.h>
#include "MyNative.h"
#include "windows.h"
#include <jni.h>JNIEXPORT void JNICALL Java_MyNative_HelloWord (JNIEnv *env, jclass jobject) { printf("hello word!\n");}JNIEXPORT jstring JNICALL Java_MyNative_cToJava(JNIEnv *env, jclass obj, jstring strTime) { HINSTANCE hDLL; hDLL = LoadLibrary("mjSDKDLL.dll");
if (hDLL != NULL)
printf("good %d\n", hDLL);
else
printf("bad\n");
//typedef bool(*IFInitInterface)(int a,int b,LPCTSTR c); typedef int(FAR __stdcall *pMin)(int a);
// typedef int (FAR __cdecl *pMin)(int);
//typedef int (*pMin)(int port);stdcall
pMin myproc = NULL; myproc = (pMin)GetProcAddress(hDLL,"InitlComm"); if(myproc == NULL) {
printf("can't find function <went> \n"); }else { //myproc(1);
}
FreeLibrary(hDLL); return jstr;
}
解决方案 »
- Java新浪微博客户端开发系列教程
- 打包怎么把数据库也打进去
- 一个文件在被其他程序写的时候,java中其File对象的canWrite属性是否为false?
- 再开贴送分,把分全部送光!散分贴,上午结贴!!
- 请教个图形的算法??
- 这是澳洲大学IT MASTER的JAVA作业,我做了一些,但是有些问题,大家帮看看。
- 如何用JAVA实现关机,不是Runtime.getRuntime().exec("CMD/")那种
- 我想把数据库的前5个值赋如数组,谢谢
- 如何把GBK编码的串变为UNICODE串?(内详)
- 如何用javamail查看垃圾箱、草稿箱里的邮件?我已经知道如何查看收件箱里的邮件了
- jar文件在用IE浏览,在IE端是怎么处理的?求求求求各位了!着急!
- 怎么知道一个IP是局域网的还是网外的?
可以先给你的上面这个写个main函数测测这两个函数的执行情况,然后再把这两个dll 考到该放的地方,运行你的java程序