1、. .问题分析报告修改时间修改人修改容版本备注2021年1月17日建新建V0.1草稿问题一2021年1月19日建增加增加问题二、问题三问题一:总台业务软件启动时出现kernelBase.dll错误问题1、抓图2、测试条件、法及结果 1测试一win10企业环境测试条件:取消软件兼容模式法:经过屡次运行关闭程序结果:4次中就会出现一次该问题 2测试二win10企业环境测试条件:启动软件兼容模式法:经过屡次运行关闭程序结果:运行十几次也不见得会出现一次该问题 3测试三win10企业环境测试条件:关闭软件兼容模式且源码的工程文件中注释掉剪贴板代码法:经过屡次运行关闭程序结果:没有发现一次该问题。另外发
2、现软件的启动前不用等待操作系统兼容某个操作系统所浪费的时间。4测试四WINDOW Server 2021 R2企业版条件:关闭兼容模式法:屡次运行结果:一切正常5测试五WINDOW Server 2021 R2企业版条件:翻开兼容模式win95,win98法:运行一次结果:每运行一次都会提示没有版本信息等提示。6测试六WINDOW Server 2021 R2企业版条件:翻开兼容模式NT4.0 sp5及高版本法:屡次运行结果:正常7测试七WINDOW Server 2021 R2企业版条件:翻开、关闭兼容模式法:同时翻开软件两次结果:不管是翻开或是关闭模式,必定会引起剪贴板错误kernelBa
3、se.dll问题8测试八WIN10企业版条件:翻开、关闭兼容模式法:同时翻开软件两次结果:不管是翻开或是关闭模式,必定会引起剪贴板错误kernelBase.dll问题3、问题根源 1问题出现在工程文件中使用的剪贴板功能处 2兼容性变化的原因1文件兼容性的存储式是以文字名为唯一的,所以在该文件改名后兼容性就会被重置为取消状态。2生成是设置为了兼容模式,发给客户就没有兼容属性,是因为客户电脑上从未设置过该属性,而文件被COPY过来后会重置,默认为取消兼容模式。3不管是否开启兼容模式,只要在很短的时间翻开两次程序,那么会报剪贴板错误继而引起kernelBase.dll问题。4、解决法1在实施工程师将
4、程序给客户或部署到主机上时,明文规定必须将程序设置为兼容模式或告诉客户启动兼容模式。2可以去掉工程中的剪贴板功能,这样可以同时启动两个程序进程。3在工程文件中引用互斥变量,同一时间只能有开一个程序进程运行。5、建议1由于未经过大量的非兼容测试,担忧其它功能受到影响,所以建议使用第一种解决法启动兼容模式 2源码调试时该问题是易出现的,建议开发工程师在编译生成后取消掉兼容模式,在此模式下编译生成后用生成后的执行程序调试。 3源码调试时去掉被忽略的EXCEPTION选项,这样才可以尽可能多的抓到异常问题。建议采用第3个解决方法:在工程文件中引用互斥变量,同一时间只能有开一个程序进程运行。问题二:St
5、andardDaemon200.dll动态库有存溢出的问题已与明彩沟通,待其解决1、抓图 2、问题分析原来的代码会屡次调用StandardDaemon_Init,但没有StandardDaemon_CleanUp释放掉全局变量aqPeis,所以会产生存泄露。3、问题根源在总台业务程序中GetFunctionValFromHerSetting函数每次调用都会执行StandardDaemon_Ini调用,但没有调用StandardDaemon_CleanUp释放。4、解决法法1:全局变量aqPeis在创立前,可以先用freeandnil先释放。法2:在每次调用StandardDaemon_Init
6、时,最后一定要用StandardDaemon_CleanUp释放。5、建议两种法都可以铲除。问题三:用户登录时屡次执行select * from HerPermission1、 抓图2、 问题分析在ReadInPermsOfUser过程中会屡次调用AddFatherIdsOf这个功能,AddFatherIdsOf功能会调用RefreshDataset(dataset);来重新查表。3、 问题根源RefreshDataset(dataset)是刷新记录集的功能,也是重新翻开表的功能,所以调用多少次RefreshDataset就会查询多少次表,这个参数根据ListBoxPerms.Items.Count来决定查多少次表。4、 解决法建立全局表,只第一次加载,后续查缓存中的记录表。5、 建议屡次查表会重影响程序执行效率,建议使用上面的解决法解决。问题四建2021年1月17日教育之通病是教用脑的人不用手,不教用手的人用脑,所以一无所能。教育革命的对策是手脑联盟,结果是手与脑的力量都可以大到不可思议。. .word.zl.