- 博客(15)
- 资源 (11)
- 收藏
- 关注
原创 (JavaCard) JVM的异常控制器原理,以及编译器对finally的特殊处理
鉴于此处的机制,在卡端和上层大同小异,以上层代码作为例子。JVM == JCVMJRE == JCRE JVM对异常的处理主要是基于异常表(Exception Table),每个包含了try的方法在编译后除字节码外,都会产生一个附加的数据结构--异常表,异常表结构:{ {PC:BEGIN, PC:END, PC:HANDLER, EXCEPTION-TYPE
2010-04-29 17:06:00 2408
原创 如何创建一个双击可以运行的Jar文件
其实jar就是一个zip压缩,根目录就是默认的classpath。所以运行一个jar除了把对应的class文件按照包格式打包进来,还需要通知JVM需要运行的主类(也就是main在哪)jar是用一个清单文件(manifest.mf)来管理jar包中的视图结构,主类的声明也在里面。 首先创建一个HelloWorld.java文件package test;public class H
2010-04-29 16:30:00 3126 1
原创 嵌入式编译器常用输出格式--Intel 32 bit Hex
Intel HEX文件是记录文本行的ASCII文本文件,下面是Intel HEX文件格式,在Intel HEX文件中,每一行是一个HEX记录由十六进制数组成的机器码或者静态数据,Intel HEX文件经常被用于将程序或数据传输存储到ROM.EPROM,大多数编程器和模拟器使用Intel HEX文件. 记录格式: 一个Intel HEX文件可以包含任意多的十六进制记录,每条记录有五个域,下面
2010-04-27 14:57:00 2971 1
原创 嵌入式编译器常用输出格式--Hex-80(Hex 386)
Keil L51 输出的hex文件格式为Hex-80。是一个文本文件,纪录的格式为::LLAAAARRDDDD………DDDDCCLL: Length field-长度段:数据段(D)的字节数AAAA: Address field-地址段:数据段第一个字节的地址RR: Record type-纪录类型,00代表数据,01代表纪录结束DD..
2010-04-27 14:48:00 5334
原创 嵌入式编译器常用输出格式--Motorola S-records(S19文件)
Motorola S-records 16进制文件格式是嵌入式中除intel hex之外很常见的格式,下面是它的格式:+-------------------//------------------//-----------------------+| type(hex1) | count(hex 1) | address | data | checksum(从count累加到checksum,
2010-04-27 14:30:00 2824
原创 Keil的lib库函数的封装
在协同工作中,经常会有模块维护和代码封装的问题。把需要封装的代码打成一个lib无疑是一种很好的方式。 1.创建lib 创建一个lib很容易,只需要创建一个target,然后把需要封装的代码全部加进来,然后再Options of Target中选择Create Library,然后编译,因为是lib所以不需要链接,编译过了,你的lib就创建了。当然了,为了别人可以轻松的使用,请提供头文件
2010-04-27 14:24:00 8642 1
原创 C++中的异常处理(求教:catch中的向上类行转化)
C++的try关键字会产生一个独立的栈,try中间的函数和产生的异常对象都在上面,此栈只有在try catch块完成后,才能获得释放。 语法不多谈,举几个例子class B{public: B() { cout } B(B& b) { cout } virtual ~B() { cout }};void func(){ throw B();}void main(){
2010-04-24 00:36:00 988
转载 C++中的RTTI实现
摘要: RTTI(Run-Time Type Identification)是面向对象程序设计中一种重要的技术。现行的C++标准对RTTI已经有了明确的支持。不过在某些情况下出于特殊的开发需要,我们需要自己编码来实现。本文介绍了一些关于RTTI的基础知识及其原理和实现。RTTI需求: 和很多其他语言一样,C++是一种静态类型语言。其数据类型是在编译期就确定的,不能在运行时更改。然而由于面向对象
2010-04-24 00:22:00 1271
原创 C++中的RTTI扩展应用
近来学习Java逐渐引发了一些对C++相关属性的思考。之前搞清楚了基于虚函数的C++的类Java的多态的实现。今天又想起Java里面的instanceof关键字在C++里面的实现,综合了一些相关的资料,发现还是可行的。instanceof是一种运行态的操作,C++作为一个编译型语言默认是没有在编译过程中获得运行态的状态的,所以要想获得这种扩展的支持需要激活C++的RTTI(Run-Time Typ
2010-04-23 23:11:00 1155
转载 C++ 构造函数抛出异常会引起内存泄漏吗?
我们用实际代码说明问题:先看一下如下代码:#include using namespace std;class Inner{public:Inner(){cout}~Inner(){cout}}; class Outer{private:int m_Value;Inner inner1;public:Outer(i
2010-04-23 17:10:00 1435
转载 C++中的关键字:explicit
C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。 C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。 1 是个构造器 2 是个默认且隐含的类型转换操作符。 所以, 有时候在我们写下如 AAA = XXX, 这样的代码, 且恰好XXX的
2010-04-23 16:39:00 693
原创 Java与C++的多态
没有必要用一堆绕口的形容词来描述什么叫多态,只举出几个关键点。 设:gun为父类,shootgun和pistol为gun的子类。 Java: class gun { void shoot() { System.out.println("gun shoot"); } } class s
2010-04-22 14:37:00 1076 1
原创 JAVA常用类解析-String
要理解 java中String的运作方式,必须明确一点:String是一个非可变类(immutable)。什么是非可变类呢?简单说来,非可变类的实例是不能被修改的,每个实例中包含的信息都必须在该实例创建的时候就提供出来,并且在对象的整个生存周期内固定不变。java为什么要把String设计为非可变类呢?你可以问问 james Gosling :)。但是非可变类确实有着自身的优势,如状态
2010-04-16 14:58:00 1064
原创 javac参数(-classpath, -sourcepath)详解
首先是官方说法:-classpath:设置用户类路径,它将覆盖 CLASSPATH 环境变量中的用户类路径。若既未指定 CLASSPATH 又未指定 -classpath,则用户类路径由当前目录构成。 -sourcepath:指定用以查找类或接口定义的源代码路径。与用户类路径一样,源路径项用分号 (;) 进行分隔,它们可以是目录、JAR 归档文件或 ZIP 归档文件。如果使用包
2010-04-08 14:23:00 31711 6
原创 CPU卡中T=0通讯协议的分析与实现
关键词:卡片操作系统(COS) 终端应用层(TAL) 终端传输层(TTL) 应用协议数据单元(APDU) 传输协议数据单元(TPDU) IC卡的应用越来越广泛,从存储卡到逻辑加密卡,目前CPU卡已经逐渐在应用中占据主导地 位。CPU卡根据通讯协议可分为两种:接触式和非接触式。接触式CPU卡主要采用两种通讯协议:T=0和T=1通讯协议。T=0是异步半双工字符传输协 议,T=1是异步半双工块传输协
2010-04-08 14:16:00 2747 1
remote HCE示例工程(Android Studio)
2016-06-14
Mac上使用pcsc访问智能卡的xcode工程
2012-09-20
ubuntu上基于pcscd和libpcsclite访问智能卡的eclipse工程
2012-09-20
PKCS#1 java 语言实现参考 V1.0
2012-03-27
eclipse javacard 开发插件
2011-09-02
IBM jcop dev kit for eclipse
2011-09-02
智能卡规范 3GPP TS 11.11
2010-04-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人