Fortran Coder

查看: 135|回复: 2

[绘图界面库] quickwin 的run time error

[复制链接]
回帖奖励 5 元F 币 回复本帖可获得 5 元F 币奖励! 每人限 1 次

12

帖子

3

主题

0

精华

入门

F 币
47 元
贡献
33 点
发表于 2021-3-31 20:50:49 | 显示全部楼层 |阅读模式
本帖最后由 望舒 于 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
(忽略掉力学背景,可认为此功能在数学就是进行迭代,进而给出每一步解并显示,所以出现重影是否和没有清除上一步解在屏幕上的显示有关?)
12.jpg
          图  1

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

11.jpg
图3   程序自带的帮助说明将生成一个res文件存储结果
9.jpg
图4   运行时错误的清单 一
13.jpg
图5   运行时错误的清单 二


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



回复

使用道具 举报

12

帖子

3

主题

0

精华

入门

F 币
47 元
贡献
33 点
 楼主| 发表于 2021-3-31 23:44:35 | 显示全部楼层
事实上之所以想把结果写入res文件就是因为在显示界面上字体重叠了。
理论上解决一个问题就可以了

12

帖子

3

主题

0

精华

入门

F 币
47 元
贡献
33 点
 楼主| 发表于 2021-4-6 01:44:40 | 显示全部楼层
本帖最后由 望舒 于 2021-4-6 22:57 编辑

好了已经解决了是编译器版本 以及系统版本不兼容的问题
下了个XP虚拟机用CVF屁问题都没有
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2021-4-19 07:18

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表