1

我需要这样调用本机方法:

爪哇代码:

private native Object SendFiles(String strEmail, DeviceInfo info, String [] arrFiles, int cntFiles, ID idRequest);

调用 SendFiles();

SendFiles(strEmail, null, arrFiles, cntFiles, requestID);

和 C++ 代码:

jobject Java_com_xxxxx_xxxxx_controller_CoreController_SendFiles(JNIEnv *pEnv, jobject obj, jstring strEmail, jobject jinfo, jobjectArray jarrFiles, jint cntFiles, jobject jidRequest){
         .........

          if(jinfo == NULL)       // here crashes !!!!!!!
             doSomething();

         ............
}

Java 'null' 可以发送到 c 'NULL' 吗?

我怎么能这样做?

4

2 回答 2

0

您可以阅读NULL多个帖子上的 C++ 检查,例如检查 C++ 中的空对象检查这是否为空我们如何检查指针是否为 NULL 指针?

但是这篇文章似乎给出了最直接的方法: 如果未找到搜索结果,则返回“NULL”对象

于 2013-02-21T18:07:19.433 回答
0

jobject是 C++ 端的指针数据类型。当您从 Java 传递null对象时,C++ 将其作为NULL指针接收。可以比较一下。

崩溃可能与其他事情有关。插入一些诊断输出并调试。

于 2013-02-21T22:33:33.843 回答