静待花开 发表于 2022-10-26 21:49:31

什么代码可以关闭运行窗口,不用一直停在press any key to con...

能不能在程序的最后加一些代码,使程序运行结束后,屏幕不是一直停在press any key to continue,而是由执行这些代码来关闭这个窗口,不需要手动去关闭?
有没有参考资料,高手可否提示一下?

necrohan 发表于 2022-10-27 08:20:14

在VS里执行要按任意键退出,直接双击编译后的程序执行不会有这个提示,运行后自动退出。

静待花开 发表于 2022-10-27 09:38:49

necrohan 发表于 2022-10-27 08:20
在VS里执行要按任意键退出,直接双击编译后的程序执行不会有这个提示,运行后自动退出。 ...

谢谢了。因为编译是网上下的代码,您说过之后,我才发现是因为这个代码的最后加了个子程序,专门就是停在那儿,需要按下任意键,才会退出。谢谢您的回答。

还有个问题,不知道您了不了解。我用VS+Intel oneAPI编译的exe。第1次编译完之后,放在其它电脑上运行时,提示需要某一个.dll文件。后来我注释掉其中某些代码,又编译了一次,这次放在其它电脑上运行时,反而需要更多的.dll文件,感觉有点难以理解。不知您觉得是什么原因呢?我注意掉的是其中一个很简单的子程序

fcode 发表于 2022-10-27 15:18:59

静待花开 发表于 2022-10-27 09:38
谢谢了。因为编译是网上下的代码,您说过之后,我才发现是因为这个代码的最后加了个子程序,专门就是停在 ...

详解
http://dlllose.w.fcode.cn/

necrohan 发表于 2022-10-28 08:30:49

如果确实需要输入,可以用输入重定向:a.exe < stdin.txt
把要输入的参数写到文件stdin中,一行一个。最好写个批处理。
dll问题看楼上。

静待花开 发表于 2022-11-2 17:09:40

fcode 发表于 2022-10-27 15:18
详解
http://dlllose.w.fcode.cn/

非常感谢。我按照上面方面,发现这种方法可以减少一些.dll,我编译的这个还需要1个.dll。谢谢了

静待花开 发表于 2022-11-2 17:10:20

necrohan 发表于 2022-10-28 08:30
如果确实需要输入,可以用输入重定向:a.exe < stdin.txt
把要输入的参数写到文件stdin中,一行一个。最好 ...

谢谢了,高手!

fcode 发表于 2022-11-2 21:23:15

静待花开 发表于 2022-11-2 17:09
非常感谢。我按照上面方面,发现这种方法可以减少一些.dll,我编译的这个还需要1个.dll。谢谢了 ...

具体是哪个?说出来,可能也能解决

静待花开 发表于 2022-11-10 09:49:09

fcode 发表于 2022-11-2 21:23
具体是哪个?说出来,可能也能解决

是因为程序涉及openmp计算,按照上面的方法设置后,还会差libiomp5md.dll 。不过,这也不是啥问题,我把这个dll与exe一起拷贝就可以了。按上面方法已经差不多了。难道这最后一个也可以不copy?谢谢了

布衣龙共 发表于 2022-11-10 10:55:44

静待花开 发表于 2022-11-10 09:49
是因为程序涉及openmp计算,按照上面的方法设置后,还会差libiomp5md.dll 。不过,这也不是啥问题,我把 ...

intel fortran 从 13.0 开始移除了静态链接版本的 OpenMP 支持,只提供动态链接版本。

也就是只提供 libiomp5md 而不提供 libiomp5mt。

有几个方法解决:
1. 把 libiomp5md.dll 同时拷贝到客户机。
2. 通过创建自解压缩存档(包括dll)来解决这个问题
3. 使用 Enigma Virtual Box 把 exe 和 libiomp5md.dll 打包到一起。
4. 把 libiomp5md.dll 包含在资源里,然后运行前释放到临时目录。用 LoadLibrary 或 LoadLibraryEx 加载。
5. 使用 MemoryModule 直接在内存里加载模块。(https://github.com/fancycode/MemoryModule)
页: [1] 2
查看完整版本: 什么代码可以关闭运行窗口,不用一直停在press any key to con...