为什么当我想在我的 Jniexport 函数中使用字符串时,dll 会出现故障?
如果我像在下面的代码中那样注释掉该字符串的用法,那么一切正常,并且我通过在 Java 中调用该函数得到“我的字符串”。
但只要我将该行包含在“std::string test;”中 我可以构建 dll,但在 Java 中调用 System.loadLibrary("jniBridge") 后会收到消息
java.lang.UnsatisfiedLinkError:\path\to\dll\jniBridge.dll:动态链接库 (DLL) 初始化例程失败
jniBridge.cpp:
#pragma once
#include "jni.h"
#include "jniBridge.h"
#include "string"
/*
* Class: jniBridge
* Method: instantiateAI
* Signature: ()Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_jniBridge_instantiateAI
(JNIEnv *env, jclass clazz) {
// std::string test; // fails with this line.
return env->NewStringUTF("My String");
}