Tag: c

Android NDK可以在Android共享库中包含一个Windows dll吗?

甚至可以在ndk-build命令中链接/包含一个dll文件,并生成一个可以从android java代码访问dll函数的共享库。 我一直在尝试这样做,我尝试使用SWIG创建一个java包装器代码到dll而我没有成功,然后我开始认为它甚至可能! 谢谢。

使用API​​21进行编译时出现UnsatisfiedLinkError

我的项目使用NDK r10d作为c ++代码。 当我使用API​​19编译项目时,它工作得很好,但是当我使用API​​21编译它时,它会在运行时崩溃。 当c lib被加载时,我得到: dlopen(“/ data / app-lib / com.my.app-2 / libMyCode.so”)失败:dlopen失败:找不到“libMyCode.so”引用的符号“stpcpy”… 然后它崩溃了: java.lang.UnsatisfiedLinkError:dlopen失败:无法找到“libMyCode.so”引用的符号“stpcpy”… 我使用运行Android4.4.4的OnePlus One在两种情况下进行测试。 有任何想法吗?

JavaCV透视校正

我转换了使用OpenCV和C ++实现的透视校正代码: https : //opencv-code.com/tutorials/automatic-perspective-correction-for-quadrilateral-objects/ 获取以Java实现的以下OpenCV代码: public class project { static Point2f center; public static void main(String args[]) { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); center = new Point2f(0,0); Mat src = new Mat(); src = Highgui.imread(“image.jpg”); if(src == null) { System.out.println(“Image not loaded”); System.exit(1); } Mat bw = new Mat(); Imgproc.cvtColor(src, bw, Imgproc.COLOR_BGR2GRAY); Imgproc.blur(bw, bw, new Size(3,3)); Imgproc.Canny(bw, bw, […]

C#Array ArrayList的列表

我有一个字符串对象的arraylist,然后被添加到arraylists的arraylist。 作为一个java开发人员我曾经使用过Vector,我知道现在已经不存在了,但这个名字听起来很棒哈哈!!,我还使用了ArrayList,它们都可以通过例如方式访问子arraylist ArrayList array1 = new ArrayList(); array.add(“test”); ArrayList array2 = new ArrayList() array2.add(array1); string var = array2.get(1).get(2); C#中的这个等价物是什么?

使用帧缓冲区将深度缓冲区渲染为纹理

我正在使用JOGL,但这个问题一般适用于OpenGL。 似乎存在类似的问题,但它们要么针对GLSL代码,要么与复制帧缓冲区的内容有关,要么是一般建议 – 使用帧缓冲对象而不是glCopyTexSubImage2D 。 题 我正在做一些阴影贴图。 如何使用帧缓冲对象将深度通道直接渲染到纹理? 你能发一个初始化纹理和帧缓冲对象的代码块,以及在渲染场景之前初始化所有内容的代码吗? 目前,我使用glCopyTexSubImage2D 。 我像这样初始化纹理: glGenTextures(1, &textureNo) glBindTexture(GL_TEXTURE_2D, textureNo) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE, GL_COMPARE_R_TO_TEXTURE) glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_COMPARE_FUNC, GL_LEQUAL) glTexParameterf(GL_TEXTURE_2D, GL_DEPTH_TEXTURE_MODE, GL_INTENSITY) glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, 2048, 2048, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_INT, null) 然后我像这样渲染: glBindTexture(GL_TEXTURE_2D, textureNo) glClear(GL_DEPTH_BUFFER_BIT) drawScene() glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, […]

c ++插件 – > JNI – > Java Classpath

我正在尝试为应用程序创建一个插件。 插件需要用c ++编写。 我想在Windows和Mac上使用插件,所以用Java编写插件会很棒。 我的问题是,还有一个使用Java的插件。 由于它们使用相同的主应用程序,因此已经有一个正在运行的JavaVM。 JavaVM *jvm = NULL; jsize jvm_count = 0; jint res=0; res = JNI_GetCreatedJavaVMs (&jvm, 1, &jvm_count); 我的问题:如何更改/修改现有JavaVM的Classpath? 或者我如何创建新的/第二个JavaVM? 我试图通过JNI加载我的jar文件: /* URL CLASS */ jclass URLcls; URLcls = env->FindClass(“java/net/URL”); /* URL CLASS CONSTRUCTOR*/ jmethodID URLclsMid; URLclsMid = env->GetMethodID(URLcls, “”,”(Ljava/lang/String;)V”); /* URL OBJECT */ jobject URLobj; jstr = env->NewStringUTF(“file:/path/to/test/file/test.jar”); URLobj = […]

SWIGTYPE_p_p_:结构指针上的指针(从C / C ++到Java)

我正在使用Swig生成Java类。 我需要处理结构上指针的指针 。 我有这个结构: struct Model { uint32_t serial; } 我在C / C ++中有一个需要包装的函数: void getModel( Model ** model ){ // instructions… } 我得到这个Java类的结果: public class SWIGTYPE_p_p_Model { private long swigCPtr; protected SWIGTYPE_p_p_Model(long cPtr, boolean futureUse) { swigCPtr = cPtr; } protected SWIGTYPE_p_p_Model() { swigCPtr = 0; } protected static long getCPtr(SWIGTYPE_p_p_Model obj) { return […]

调试语句的最佳实践是什么,其中包含字符串操作?

我经常发现自己在log4net和log4j的调试语句中添加了连接字符串或使用字符串格式化器,我应该用“if debug”块来包围这些调试语句,以便通过处理这些参数来阻止自己浪费资源,即使调试语句将会不打印出来? 我会假设检查if(isDebug)是否比发生字符串操作更快更有效,但是当调试级别设置高于debug时,它会导致程序以不同的方式运行(更快),这可能意味着同步问题当我写入日志时,在生产中发生的事情不会发生。

使用Android NDK构建Soundtouch

我正在尝试在我的Android项目中导入Soundtouch库,但我不是本机代码高级用户,所以这可能就是为什么我在理解构建应该完成的方式时遇到一些问题。 我试着遵循他的指导方针: Android:帮助编译Android中的SoundTouch lib 这意味着,我创建了2个文件夹( include /和SoundTouch / ),我分别插入了标题和.cpp文件。 之后,我使用了他的Android.mk ,当我尝试ndk-build时 ,我得到了这个: Android NDK: WARNING: Ignoring invalid values in LOCAL_CPP_FEATURES definition in /home/user/workspace/Player/jni/Android.mk: -fno-exceptions Android NDK: WARNING: Ignoring invalid values in LOCAL_CPP_FEATURES definition in /home/user/workspace/Player/jni/Android.mk: -fno-exceptions make: *** No rule to make target /home/user/Downloads/android-ndk-r8d/build/core/SoundTouch/AAFilter.cpp’, needed by /home/user/workspace/Player/obj/local/armeabi-v7a/objs/SoundTouch/SoundTouch/AAFilter.o’. Stop. 据我所知,我可以删除-fno-exceptions标志,因为在较新版本的NDK中,默认情况下禁用了exception处理,但我没有弄清楚make部分的错误。 提前致谢。

Java和C#之间的通信

我发现有一个名为GCT的.Net工具包 – Group Communication Toolkit是JGroup的C#版本。 我想知道这个和JGroup是否可以连接在一起,以使java和C#客户端相互通信。 如果没有,那么使java程序和C#程序进行通信的最佳选择是什么? 我遇到的另一个选择是XMPP实现。 我需要在同一台计算机上运行的这两个程序之间传递非常快的消息。 主要要求是,当某些特定事件被触发时,该程序中的任何一个都会向另一个发送消息。 任何想法都欢迎。