Extern "C" 给出错误 "Linkage specification is not allowed" 即使在添加 def 之后。在头文件中?
Extern "C" giving error "Linkage specification is not allowed" even after adding def. in header file?
这是我的 main.cpp 文件中的代码:
extern "C" JNIEXPORT jint JNICALL Java_SomefnHandling_Jni_1someInit (JNIEnv * env, jobject , jstring var1, jstring var2)
{
//rest part of code in here
}
这是我的 main.h 文件中的定义:
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT jint JNICALL Java_Someufnhandling_Jni_1someInit
(JNIEnv *, jobject, jstring, jstring);
#ifdef __cplusplus
}
#endif
这个程序从 java 文件中获取 2 个参数并使用 jni 接口传递到我的 dll 但在这个文件中我收到错误:
Linkage specification is not allowed
我正在使用 VC++ 生成 DLL 文件,并试图从 SO 中找到相同的解决方案,但他们都提到只是添加 def。在你的头文件中。
即使这样做之后,错误仍然存在。
有什么想法吗?
我删除了我在 main 函数中调用的方法并将其放在 main 之外,然后它开始像 charm 一样工作
这是我的 main.cpp 文件中的代码:
extern "C" JNIEXPORT jint JNICALL Java_SomefnHandling_Jni_1someInit (JNIEnv * env, jobject , jstring var1, jstring var2)
{
//rest part of code in here
}
这是我的 main.h 文件中的定义:
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT jint JNICALL Java_Someufnhandling_Jni_1someInit
(JNIEnv *, jobject, jstring, jstring);
#ifdef __cplusplus
}
#endif
这个程序从 java 文件中获取 2 个参数并使用 jni 接口传递到我的 dll 但在这个文件中我收到错误:
Linkage specification is not allowed
我正在使用 VC++ 生成 DLL 文件,并试图从 SO 中找到相同的解决方案,但他们都提到只是添加 def。在你的头文件中。 即使这样做之后,错误仍然存在。 有什么想法吗?
我删除了我在 main 函数中调用的方法并将其放在 main 之外,然后它开始像 charm 一样工作