175210课设个人报告
一、我的贡献
Ruby实现ASN.1编解码- 使用 
QT5编写软件界面 - 编译,打包,测试
 
二、列出设计中遇到的问题及解决方法
2.1 树形结构 QTreeWidget 如何存储数据
查阅资料,使用 setData(col, row, data) 函数存储数据,使用 data(col, row) 读取数据
2.2 渲染树形结构,需要将子节点插入到父节点下,如何找到父节点?
asn1_dump_parse 函数解析结果有 d: 一项,表示此节点在树中的深度。使用一个哈希表 HashMap<int, QTreeWigetItem*>,产生一个新节点就将其 深度 和 指向其的指针 插入哈希表中,同时读取其 深度减一 所对应的值,这就是指向其父节点的指针
三、列出调试过程中遇到的主要问题
3.1 数据类型中存在空格( 如 BIT STRING )时,解析出的结果不对
查看代码,发现正则表达式(数据类型部分)未匹配空格,添加 "//s"
3.2 软件 linux 下打包出现困难
- 
使用
linuxdeployqt打包程序( github 搜索 ) - 
在启动脚本中添加
export LD_LIBRARY_PATH=/app/lib:$LD_LIBRARY_PATH export QT_PLUGIN_PATH=/app/plugins:$QT_PLUGIN_PATH export QML2_IMPORT_PATH=/app/qml:$QML2_IMPORT_PATH把软件的依赖库添加到系统路径中,成功启动
 
四、设计体会及收获
- 学会了如何在 
linux环境下打包QT,以前只会windows打包 - 学习了 
ASN.1标准,对证书结构有了进一步了解 
                    
                
                
            
        
浙公网安备 33010602011771号