先上c++代码
extern “C” __declspec(dllexport) char* DrawRegionPoint(char* buf, char* path);
char* DrawRegionPoint(char* buf,char* path) {
char* aa;
aa = new char[50] ;//{'d', 'd'}
aa = "kkkkjjjjjjjkkkkkkkk";
return aa;
}
下面是java代码(安装jna请参考我另一篇文章)
先写接口类:
package com.lhc.springboot_mybatispuls.service;
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Pointer;
public interface DrawImageService extends Library {
//加载动态资源库
DrawImageService library = (DrawImageService) Native.loadLibrary("DrawRegionLib", DrawImageService.class);//注意库名称的写法不要含有lib字符
//定义要调用的方法,与cf.h头文件中定义的函数名一样
String DrawRegionPoint(Pointer ptr, String path);
// int DrawRegionPoint(String ptr, String path);
}
然后调用接口
Pointer ptr = new Memory(5000);//p<Ljava/lang/String;Ljava/lang/Object;>;\u0001
String path = “D:/software-project/demo/c++/ConsoleApplication1\DrawRegionLib\TemplateImage1.png”;
String str = DrawImageService.library.DrawRegionPoint(ptr,path);
//这里的str就是返回结果kkkkjjjjjjjkkkkkkkk