2023-01-21 284
所以我一直在调查JNI电话,以便我可以与一些书面的C ++程序进行互动,但我不知道任何C ++,但是正在尝试学习一些基础知识.我刚刚试图对我的JNI方法之外的方法进行简单的调用,但始终会出现以下错误:
错误c3861’myMethod’:找不到标识符
#include <stdio.h>
#include <string.h>
#include "StringFuncs.h"
JNIEXPORT jstring JNICALL Java_StringFuncs_changeWord(JNIEnv *env, jobject obj, jstring inStr, jint inLen)
{
const char *inString;
inString = env->GetStringUTFChars(inStr, NULL);
char otherString[40];
strcpy_s(otherString,inString);
if(myMethod())
{
memset(otherString, '-', inLen);
}
jstring newString = env->NewStringUTF((const char*)otherString);
return newString;
}
bool myMethod()
{
return true;
}
int main()
{
return 0;
}
任何wisdome的话?
您必须在调用方法之前声明您的方法.所以在您的标题类型中
bool myMethod();
或者您可以移动_changeword函数上方的代码,然后声明/定义是一个.
在源文件中移动myMethod()上方的java_stringfuncs_changeword().
在C ++中,您通常必须在使用它之前声明一个符号.因此,在Java_stringfuncs_changeword之前的某个地方您需要声明myMethod:
bool myMethod();
如果这将是共享函数(其他CPP模块会称呼它),那么您很可能希望将其放入可以由其他文件包含的标题文件中.如果该模块只能调用该函数,则要将声明放在文件的顶部,在其他#includes之后.
您还可以通过将整个函数移动到调用它的函数上方,而将整个函数移动到一个go中,但是这种函数始终不起作用(如果您有两个函数,则彼此参考,您必须具有单独的声明).
以上所述是小编给大家介绍的在C++中用JNI进行方法调用?,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/26234.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态