Tag: 本机代码

如何在NaCl模块中使用移植的库?

我想在我的NaCl模块中使用openssl库。 幸运的是,它已经移植到https://code.google.com/p/naclports/中 。 但是,它有点遗憾,但我不知道如何将库添加到工具链。 我按照Readme文件中的指示做了: … nacl_sdk / pepper_33 / naclports / src $ python build_tools / naclports.py安装openssl已安装’openssl'[x86_64 / newlib] 然后我尝试编译这个简单的C 代码 ,并且编译器抱怨一些错误,这是由于与openssl/evp.h的链接问题。 这是我的Makefile: 链接 。 请让我知道如何让它运行。

从C代码创建JAVA类

我在Java中有一个名为XMLDOMDocument类,这个类有一些方法CreateXML , AddNode , RemoveNode等。我在Java Native Interface的帮助下从C代码调用这个方法,但为了做到这一点,我传递给了我的JAVA类的C代码对象然后通过调用env->GetObjectClass(myclass)我从该对象获取我的类并调用JAVA类的方法。 我想知道我可以做同样的事情(调用JAVA方法)而不将我的类传递给C代码。 我可以在C代码中创建JAVA类,然后调用它的方法。 编辑 如果我的C代码中有JavaVM,我可以借助该Java VM在C代码中创建一个新的JAVA类实例。 编辑 我想我找到了一些有用的东西创建Java虚拟机 ,但我想知道必须要使用什么值#define USER_CLASSPATH ? 如果必须是包名com.fido.android.framework.service public class Prog { public static void main(String[] args) { System.out.println(“Hello World ” + args[0]); } } #include #define PATH_SEPARATOR ‘;’ /* define it to be ‘:’ on Solaris */ #define USER_CLASSPATH “.” /* where Prog.class is […]

如何在不创建新进程的情况下运行汇编代码?

该文件包含本机程序集代码,我想在当前进程中运行它。 但我不想创建一个真实的文件(.com或.exe),所以我试过: … using namespace std; typedef void bitcode(); void testcode(){ cout<<"test"; }; int main() { bitcode *c=&testcode; // bitcode *c stands for the file containing the assembly code. bitcode *d=reinterpret_cast (malloc(20)); memcpy(d, c, 20); d(); // it doesn’t work return 0; }; 但是,当我调用d();它时它不起作用。 我想知道使用C / C ++执行此操作的正确方法是什么。 (我在Windows上,如果你能告诉我如何在Linux上制作它,我会非常感激) 非常感谢! PS:我不是要求“在没有创建新进程的情况下在另一个进程中运行可执行文件”。