====== Develop topic ======
* [[developtopic#preknowledge|预备知识]]
* [[developtopic#developtool|开发工具]]
* [[ftp://x9x1.cn/_DevDoc/_template/06_主测试计划_A_PRE.doc|XT编程规范]]
* [[developtopic#howtodevelop|如何开发XT]]
* [[developtopic#howtowritedoc|如何编写开发文档]]
* [[developtopic#redminetool|如何使用Redmine]]
* [[developtopic#svntool|如何使用SVN]]
* [[developtopic#technicalpoint|编程技术知识点]]
* [[developtopic#customize|前后处理定制开发]]
* [[developtopic#proeif|ProE接口开发]]
* [[developtopic#translate|界面翻译]]
----
{{anchor:preknowledge}}
**预备知识**
- C参考书籍: 《C程序设计语言》 (Kernighan & Ritchie)
- C++ 参考书籍:《C++ primer》
- Qt 参考书籍:《C++ GUI Qt 5编程》
- FEM 参考书籍:《有限单元法》 (王勖成)
- 设计模式
- [[http://blog.csdn.net/ymc0329/article/details/7865339|QWT数值曲线绘制库]]
- [[ftp://x9x1.cn/_DevDoc/XT_V0.1/00_编程规范/00_C++编程规范_A_PRE_20110207.docx|编程规范]]
{{anchor:developtool}}
**开发工具**
* [[http://x9x1.cn:81/redmine|Redmine开发管理系统]]
* [[https://x9x1.cn/dev/cae|SVN代码管理系统]]
* 代码编辑编译器Microsoft Visual Studio 2015
* 代码浏览检索工具Visual Assistant
* 测试工具Google Test
* 代码比较工具Beyond Compare
* [[http://www.dependencywalker.com|动态库依赖工具Dependency Walker]]
{{anchor:howtodevelop}}
**如何开发XT**
开发准备工作
* 安装Visual Studio2015
* 安装Qt5.15.2
* 向管理员<12450048@qq.com>申请[[https://x9x1.cn/redmine|Redmine帐号]]和[[https://x9x1.cn/svn|SVN帐号]]
* 由SVN下载源代码以及[[https://x9x1.cn/svn/3rdparty_libs_win64|64位版第三方库]]
* 修改build\set_env_win64_vs2015.bat中Qt库路径(@SET QTDIR=C:\Qt\5.15\5.15.2\msvc2015_64)和第三方库路径@SET THIRD_LIB_PATH=%CD%\3rdparty_libs_win64为实际路径
@SET PROJECT_CODE=XT
@SET QTDIR=C:\Qt\5.15\5.15.2\msvc2015_64
@SET QTDIR_INCLUDE=%QTDIR%\include
@SET QTDIR_BIN=%QTDIR%\bin
@SET WORK_DIR=%1%
@SET ROOT_DIR=%WORK_DIR%\..\..\..\..
@SET THIRD_LIB_PATH=D:\Work\9X1\cae\trunk\3rdParty
@SET OCC_PATH=%THIRD_LIB_PATH%\occ
@SET PYTHON_PATH=%THIRD_LIB_PATH%\python\v37
@SET HDF_PATH=%THIRD_LIB_PATH%\hdf
@SET TAUCS_PATH=%THIRD_LIB_PATH%\taucs
@SET CURL_PATH=%THIRD_LIB_PATH%\curl
@SET CM2_PATH=%THIRD_LIB_PATH%\cm2
@SET BLAS_PATH=%THIRD_LIB_PATH%\blas
@SET OPENCL_PATH=%THIRD_LIB_PATH%\opencl\x64
@SET PATH=%OCC_PATH%\win64\vc14\bin;%THIRD_LIB_PATH%\taucs\bin;%BLAS_PATH%/bin;%CM2_PATH%\libs;%QTDIR_BIN%;%PATH%
@SET GLOBALMACRO=_CRT_SECURE_NO_WARNINGS;_WINDOWS;_UNICODE;_WIN64;_ENABLE_ANALYSIS;_ENABLE_UI
@SET DEV_EXE=C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe
@SET XT_INCLUDE=%WORK_DIR%\include
@SET BIN_PATH=%WORK_DIR%\bin
@SET CLOUT_PATH=%WORK_DIR%\clout
@SET DistributionPath=%WORK_DIR%\distribution\x64
@SET PLATFORM_PATH=%WORK_DIR%\src\platform
@SET COMMON_PATH=%WORK_DIR%\common
@SET _CRT_DIR=%THIRD_LIB_PATH%\crt
* 修改build\\build_win64_vs2015.bat中TAR_SLN目标编译方案文件的路径,这里为项目名(需要在build目录下创建同名的目录以放置该项目的编译启动文件)
@SET TAR_SLN=%~dp0all.sln
@CD /D %~dp0..\..
@CALL build\set_env_win64_vs2015.bat %CD%
"%DEV_EXE%" %TAR_SLN%
@exit
开发流程
- 技术组通过Redmine系统向开发组提出需求以及详细的需求文档和测试案例
- 项目经理通过Redmine系统向开发工程师分配任务
- 开发工程师评估任务可完成性以及完成时间
- 项目经理通过Redmine确认任务时间表
- 开发工程师开发/测试
- 开发工程师每周五通过Redmine系统更新任务进度并向项目经理提交本周工作报告
- 开发工程师完成开发测试之后通过Redmine系统向技术组报告测试案例结果
- 开发工程师形成开发文档
- 项目经理发布测试版(一般每周一次)
- 技术组测试所需功能并通过Redmine系统反馈bug
- 开发工程师修正bug并通过Redmine系统更新bug状态
- 技术组通过Redmine系统确认bug修正
- 技术组形成技术文档
{{anchor:howtowritedoc}}
**如何编写开发文档**
* 类定义文档
* [[ftp://x9x1.cn/_DevDoc/_template/06_主测试计划_A_PRE.doc|文档模板]]
* 按照模板编写单独的txt文档
* 类名
* 成员变量:名称,类型,意义
* 成员函数:分为公有、保护、私有三种类型,函数原型,参数表,参数意义及类型,返回值,函数功能说明
* 类实现文档
* [[ftp://x9x1.cn/_DevDoc/_template/06_主测试计划_A_PRE.doc|文档模板]]
* 按照模板在类实现文件的头部,以注释的形式编写
* 类名称
* 类功能介绍
* 类设计者
* 类设计时间
* 类的修改历史,包括修改人,修改时间,修改事项
* 对于比较复杂的类函数,应将函数逻辑以注释形式置于函数前
* API定义文档
* [[ftp://x9x1.cn/_DevDoc/_template/06_主测试计划_A_PRE.doc|文档模板]]
* 按照模板编写单独的txt文档
* 函数说明:函数原型,参数表,参数意义及类型,返回值以及功能说明
* API实现文档
* [[ftp://x9x1.cn/_DevDoc/_template/06_主测试计划_A_PRE.doc|文档模板]]
* 函数功能介绍
* 函数编写者
* 函数编写时间
* 函数逻辑
* 函数的修改历史,包括修改人,修改时间,修改事项
{{anchor:svntool}}
**如何使用SVN**
- [[ftp://x9x1.cn/_Software/Dev_Platform/Windows/|下载安装软件TortoiseSVN-1.6.12.20536-win32-svn-1.6.15.msi]]
- 下载源代码或其他资源文件
- 进入目标目录(用户需要放置源文件的目录下)
- 鼠标右键选择__SVN checkout...__
- 对话框中第一个输入框(URL of repository)输入源码仓库路径((仓库路径请向管理员询问))
- 点击OK,完成源码检出
- 上传文件
- 鼠标右键单击本地代码文件或是目录
- 选择__SVN commit...__
- 更新文件
- 鼠标右键单击本地代码文件或是目录
- 选择__SVN update...__
{{anchor:redminetool}}
**如何使用Redmine**
- [[http://www.redmine.org.cn/manual|在线指南]]
- 进入[[http://x9x1.cn:81/redmine|Redmine管理站点]]
- 选择工程Project进入登录页面,输入用户名以及密码((请向主管经理询问用户名以及密码))
- 单击【问题】页查看任务
- 单击【新建问题】新建任务
{{anchor:proeif}}
**如何开发ProE接口**
- 安装ProE软件(比如Creo4.0)
- 将ProE toolkit工具库和头文件拷入三方库下(比如\proe\Creo4.0)对应的目录(include和lib文件夹)
- 从build\proeif目录下启动对应版本的bat文件,进入IDE环境(注意ProE的版本与VS版本必须适配)
- 解锁编译好的ProE定制动态库
- 在XT中编写代码在动态库路径下输出protk.dat文件
- 在XT中编写代码启动Proe程序调用ProE定制动态库
//dll_path为ProE定制动态库路径
"C:\Program Files\PTC\Creo 4.0\M140\Parametric\bin\protk_unlock.bat"
//dll_path为ProE定制动态库路径
//dll_dir为ProE定制动态库所在文件夹路径
name ImportCreo4
startup dll
exec_file
text_dir
revision Creo 4.0
end
//为输入的proe文件路径,为写出的数据文件名,+f: -O: 为传到ProE定制动态库的参数,可以根据需要修改。
"C:\Program Files\PTC\Creo 4.0\M140\Parametric\bin\parametric.exe" -g:no_graphics -i:rpc_input +f: -O:
{{anchor:translate}}
**界面翻译**
- 使用Qt Linguist工具
- 字符串命名空间规则
- 菜单项,工具条项,模型树:XT::MainFrame
- 命令窗口:XT::CommandWindow
- 其他:QObject