0

为什么当我想在我的 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");
  }
4

0 回答 0