Fortran Coder

标题: X64的exe不可以运行,x86的却可以运行? [打印本页]

作者: 静待花开    时间: 2023-2-23 20:13
标题: X64的exe不可以运行,x86的却可以运行?
实在是搞不明白怎么回事。我用的是VS2022版。在IDE里直接点击菜单栏上的“开始执行(不调试)”按钮,运行没有问题,此时我选的是X64,Release。但是我把X64文件里的exe文件copy出来,放在*.sln所在文件夹,就一闪而过,只执行了代码中的前一部分。但是我选择x86,release编译后,在IDE里直接点击菜单栏上的“开始执行(不调试)”按钮,运行没有问题,我把这样生成的exe放在*.sln所在文件夹,就可以正确运行。实在不知道是怎么回事了。
后来调试了,发现x64的exe在执行到下面这行时,就停止,一闪而过了。但也没有看出这行代码有何问题。由于不方便把整个代码贴出来,就想请大家试着帮我分析下。这个Out_FlowField.bin也是放在*.sln所在文件夹.
  Open(Unit=32, File="Out_FlowField.bin", Form="UNFORMATTED", Access="stream", Status="old")。



作者: 静待花开    时间: 2023-2-24 09:09
经过自己一晚上的试验,实 在没有发现什么错误。大早上突然想起来,是不是因为最近装了新软件Tecplot和visIt,因为把以前编译的程序拿出来,双击,竟然也无法运行,弹出对话框提示"无法定位程序输入点for stop core quiet 于动态链接库上"。就把这两软件卸载。再双击,OK,没有问题了。实在是……。
作者: li913    时间: 2023-2-26 09:59
这种一般是动态库版本混乱造成的,尤其是公共库,比如omp。假设编译器自带用的1.0版本,新安装软件里面又带了2.0,这时候有可能就搜索到新的dll,造成上述问题。
解决思路就是让程序找到正确的那个dll。比如把正确的那个dll和exe放在一起。
作者: 静待花开    时间: 2023-2-28 14:51
li913 发表于 2023-2-26 09:59
这种一般是动态库版本混乱造成的,尤其是公共库,比如omp。假设编译器自带用的1.0版本,新安装软件里面又带 ...

非常感谢。但代码里面并没有用到任何其它dll。再遇到的话,我会按你的方法尝试下,谢谢了




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2