用Jace整合Java和C++ - 编程入门网
readGoogle() {
try {
/* 当Jace在内部执行NewObject时,它会检查是否有异常发生,
* 如果JNI函数ExceptionOccurred返回一个异常,则Jace清除
* 该异常,创建一个相应的C++代理,并发出它。
*/
URL url( "http://www.google.com" );
}
/* 在这里,我们可以获得Jace发出的C++代理异常
*/
catch ( MalformedURLException& e ) {
cout << e;
}
}
自动类型转换 Jace提供C++和Java简单数据类型之间的自动数据类型转换。我们可以在C++代理需要java::lang::String的地方使用C++的std::string或char*,我们也可以在C++代理方法需要JBoolean、JInt和JChar简单JNI数据类型的地方使用bool、int和char等C++数据类型:
C++集成 Jace包括C++代理生成工具━━BatchGen,Jace开发人员对Java运行时间库环境(JRE)的rt.jar使用BatchGen生成C++代理类。Jace开发人员已经对这些生成的代理类进行修改,以更好地与C++语言和标准库进行集成。 例如,java.lang.Object有一个附加的操作符<<(ostream& out, Object& object),java.lang.String也有一些包括+()、=()和==()在内的附加方法,可以使它与std::strings和char*s更好地进行集成。 类型安全字段和方法访问 C++的代理生成是Java对象类型安全访问的基础。对于给定的Java类文件,Jace能够生成完全相同的方法和字段的C++代理类,我们可以以与调用Java中类似方法相同的方式调用C++代理方法,字段是通过同名的方法进行访问的:
Jace提供了二种工具━━ProxyGen和BatchGen,我们可以用这二种工具从Java类文件中生成C++代理类。 用Jace整合Java和C++(5)时间:2010-09-13类型安全数组 我们可以使用Jace的模板JArray类访问Java的数据类型安全数组。根据数组的数据类型,Jace调用合适的Get<Type>ArrayElement()和Set<Type>ArrayElement() JNI函数:
Jace工具 ProxyGen和BatchGen可以用来生成C++代理类。ProxyGen用来处理一个类文件,BatchGen则用来处理一个jar文件中所有的类。 ProxyGen ProxyGen能够将一个Java类文件的头部文件或源文件转出到标准输出。ProxyGen总是会包含生成的C++代理类中的public方法和字段,根据指定的访问水平,它也会包含protected、package或private方法和字段。 用法:ProxyGenerator <类文件> <头部 | 源文件> [ 选项 ] 选项可能是: -protected :生成protected字段和成员 -package :生成package字段和成员 -private :生成private字段和成员 BatchGen 在生成C++代理类的头文件和源代码文件方面,BatchGen与ProxyGen非常相似。二者的不同之处是,ProxyGen只处理一个Java类文件,BatchGe |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |