望舒 发表于 2021-3-31 20:50:49

quickwin 的run time error

本帖最后由 望舒 于 2021-4-6 01:45 编辑

编译器:VS2013+IVF
工程类型:QUICKWIN
win10 64位系统
背景:还是之前那个超空泡的古早程序。
分别尝试了用debug 和release生成exe
release生成时不会报错,但生成的exe文件部分功能(dynamic功能)无法正常使用。
debug不断提示有语法错误,查阅后知,是源代码在子程序的字符串型虚参声明时,固定了字符串长度为50或100,而输入进来的实际的字符串远小于这个长度,解决方法是将报错的字符串类型的虚参长度全部更改为*。(这个就不贴图了)
这样debug也不会报错了,生成的exe可以正常使用,release中不能使用的功能在debug下生成的却可以正常使用了。
但是debug条件下生成的exe又出现了如下问题:

1.dynamic功能使用时,子窗口显示的数据出现了重影,部分数据根本看不清,如图1
(忽略掉力学背景,可认为此功能在数学就是进行迭代,进而给出每一步解并显示,所以出现重影是否和没有清除上一步解在屏幕上的显示有关?)

          图1

2.在exe的设置里,选择将结果数据写入文件,会弹出错误并使得程序被迫关闭。之前只处理过编译过程中发生的错误,对这种运行时的错误并不清楚如何理解并更正。(图2-5)

    图2在设置中选择将图片中saveresult in a file的NO改 为yes


图3   程序自带的帮助说明将生成一个res文件存储结果

图4   运行时错误的清单 一

图5   运行时错误的清单 二


综上:
问题(主要是第三个问题)
一、就是为何release不报错,debug报错?(我猜测可能是release对程序进行了优化,忽略掉了字符长度不匹配的问题)
二、在debug条件下修复了所有语法错误后,release出来的exe还是不能使用部分功能,但debug的却可以。
三、在debug条件下的exe虽然能使用全部功能了,但是会遇到显示重影和程序运行时错误的问题。(如前所述)



望舒 发表于 2021-3-31 23:44:35

事实上之所以想把结果写入res文件就是因为在显示界面上字体重叠了。
理论上解决一个问题就可以了

望舒 发表于 2021-4-6 01:44:40

本帖最后由 望舒 于 2021-4-6 22:57 编辑

好了已经解决了是编译器版本 以及系统版本不兼容的问题
下了个XP虚拟机用CVF屁问题都没有
页: [1]
查看完整版本: quickwin 的run time error