草庐IT

JNI_ASSERT

全部标签

java - 是由 jvm 限制的 C 代码在 JNA(或 JNI)中分配的内存(参数 -Xmx 或架构 32/64)

也就是说,在C部分中请求5mb的malloc()是否会因以下原因而失败:jvm使用-Xmx32m运行,jvm堆已经是30mb与jvm在64位窗口中是32位有关 最佳答案 第一个问题的答案是“否”-Xmx指的是Java堆,任何native分配都是完全独立的。第二个项目的答案是"is"-native分配受到操作系统和/或硬件固有的一般进程分配限制。 关于java-是由jvm限制的C代码在JNA(或JNI)中分配的内存(参数-Xmx或架构32/64),我们在StackOverflow上找到一个

c++ - static_assert 依赖于类模板

考虑以下代码:templatestructmyclass{unsignedintf(){returnN;}unsignedintg(){static_assert(N>0,"");returnN-1;}};问题:我是否保证以下代码可以编译:myclassc;c.f();但以下不会:myclassc;c.f();c.g(); 最佳答案 是的,你有这个保证。来自[temp.inst]/11,强调我的:Animplementationshallnotimplicitlyinstantiateafunctiontemplate,avaria

c++ - static_assert 依赖于类模板

考虑以下代码:templatestructmyclass{unsignedintf(){returnN;}unsignedintg(){static_assert(N>0,"");returnN-1;}};问题:我是否保证以下代码可以编译:myclassc;c.f();但以下不会:myclassc;c.f();c.g(); 最佳答案 是的,你有这个保证。来自[temp.inst]/11,强调我的:Animplementationshallnotimplicitlyinstantiateafunctiontemplate,avaria

java - 我可以使用 JNI 在 Java 代码中引用 C++ 对象吗?

我在任何地方都没有看到这个(或者我只是简单地没有看到它)但是有没有办法使用JNI来返回c/c++对象并在java中使用该对象?例如(很简单):classsimpleClass{...private:intintVar;public:intgetIntVar();voidsetIntVar(intsomeNum);...}在我的java代码中,我将如何做这样的事情:...simpleClasssc=newsimpleClass();sc.setIntVar(9);System.out.println(sc.getIntVar());...我意识到这是一个非常简单的示例,但我只是在寻找概念

java - 我可以使用 JNI 在 Java 代码中引用 C++ 对象吗?

我在任何地方都没有看到这个(或者我只是简单地没有看到它)但是有没有办法使用JNI来返回c/c++对象并在java中使用该对象?例如(很简单):classsimpleClass{...private:intintVar;public:intgetIntVar();voidsetIntVar(intsomeNum);...}在我的java代码中,我将如何做这样的事情:...simpleClasssc=newsimpleClass();sc.setIntVar(9);System.out.println(sc.getIntVar());...我意识到这是一个非常简单的示例,但我只是在寻找概念

c++ - 在 C++0x 中是否有类似 static_assert 的东西给出警告而不是错误?

我想为可能效率低但不一定不正确的用法这样做。 最佳答案 没有。断言失败表示程序无法完成的问题(无论是执行[运行时断言],还是编译[静态断言])。实际上,只要实现发出诊断(包括继续执行),就可以执行任何操作。但是,在实践中,主流工具链的行为都几乎相同:它们会出错。您当然不能将它们破解为用户定义的内容。 关于c++-在C++0x中是否有类似static_assert的东西给出警告而不是错误?,我们在StackOverflow上找到一个类似的问题: https://

c++ - 在 C++0x 中是否有类似 static_assert 的东西给出警告而不是错误?

我想为可能效率低但不一定不正确的用法这样做。 最佳答案 没有。断言失败表示程序无法完成的问题(无论是执行[运行时断言],还是编译[静态断言])。实际上,只要实现发出诊断(包括继续执行),就可以执行任何操作。但是,在实践中,主流工具链的行为都几乎相同:它们会出错。您当然不能将它们破解为用户定义的内容。 关于c++-在C++0x中是否有类似static_assert的东西给出警告而不是错误?,我们在StackOverflow上找到一个类似的问题: https://

android - 带有 utf8 字符的 jstring(JNI) 到 std::string(c++)

如何将jstring(JNI)转换为std::string(c++)与utf8字符?这是我的代码。它适用于非utf8字符,但适用于utf8字符。std::stringjstring2string(JNIEnv*env,jstringjStr){constchar*cstr=env->GetStringUTFChars(jStr,NULL);std::stringstr=std::string(cstr);env->ReleaseStringUTFChars(jStr,str);returnstr;} 最佳答案 经过很长时间才找到解决

android - 带有 utf8 字符的 jstring(JNI) 到 std::string(c++)

如何将jstring(JNI)转换为std::string(c++)与utf8字符?这是我的代码。它适用于非utf8字符,但适用于utf8字符。std::stringjstring2string(JNIEnv*env,jstringjStr){constchar*cstr=env->GetStringUTFChars(jStr,NULL);std::stringstr=std::string(cstr);env->ReleaseStringUTFChars(jStr,str);returnstr;} 最佳答案 经过很长时间才找到解决

java - 通过 JNI 将 C++ 字符串发送到 Java

我正在开发一个正在构建Android应用程序的项目的C++端。我需要将一些信息(通过字符串和字符串数组)传递给Java应用程序(通过JNI)。我以前从未这样做过,反方向工作的人没有使用C++的经验,并承认他们无法真正提供帮助。我确实找到了以下代码(来自here)#include#include"ArrayHandler.h"JNIEXPORTjobjectArrayJNICALLJava_ArrayHandler_returnArray(JNIEnv*env,jobjectjobj){jobjectArrayret;inti;char*message[5]={"first","seco