test.cxx文件
#include <stdio.h>
#include "test.h"
int __declspec(dllexport) openFile() {
FILE * fp;
fp = fopen ("file.txt", "r");
if(fp == NULL)
return 0;
fclose(fp);
return 1;
}
test.h文件:
#ifndef __TEST_H__
#define __TEST_H__
#ifdef __cplusplus
extern "C" {
#endif
int __declspec(dllexport) openFile();
#ifdef __cplusplus
}
#endif // __cplusplus
#endif
现在,如果我使用以下命令创建一个dll(test.dll)
现在我将从Java访问dll。所以我使用SWIG创建一个包装器dll并访问dll函数。
我的SWIG界面文件(example.i)
%module example
%{
#include "example.h"
#include "test.h"
%}
%include "windows.i"
%include "example.h"
%include "test.h"
example.cxx文件:
#include "example.h"
example.h文件:
#include "test.h"
现在我使用以下命令
创建包装器dll我的Java课程:
public class main {
static {
System.loadLibrary("example");
}
public static void main(String argv[]) {
System.out.println(example.openFile());
}
}
当我按照命令
运行Java代码时然后jvm崩溃..可能是什么问题?看起来当C试图打开文件时,JVM崩溃了。