Fortran Coder

标题: 求教关于虚拟机 [打印本页]

作者: shrine    时间: 2015-2-3 18:45
标题: 求教关于虚拟机
虚拟机中装了xp,软件是visual studio2010+Intel visual Fortran11
其中有一句常用语句
write(*,*)
这句是要把write后面的内容输出到屏幕
我猜虚拟机程序误把主机的屏幕当成输出端,显然没有这个权限向主机屏幕输出内容,从而导致这句程序无法执行
如果把这句语句改成向文件写入内容,程序是可以执行的
试过cpp的cout 语句,也是输出到屏幕,执行没有问题

不知道我的猜想对不对,怎么解决



主机是windows10 和Mac10.10,结果都是一样的

作者: li913    时间: 2015-2-3 21:51
用命令行把输出重定位到文件。

QQ截图20150203215016.jpg (306.38 KB, 下载次数: 463)

QQ截图20150203215016.jpg

作者: shrine    时间: 2015-2-3 22:22
请问你遇到过这个问题吗?
作者: vvt    时间: 2015-2-4 07:27
虚拟机通常是没有权限向主机发送信息的。除非你进行很核心的编程。所以你的问题根本不是你想的那样。
作者: shrine    时间: 2015-2-4 07:43
那是由于什么问题呢
作者: fcode    时间: 2015-2-4 11:34
我也看不出来是什么原因,不过你截个图或许会有帮助。(全屏截图)
作者: shrine    时间: 2015-2-4 17:22
fcode 发表于 2015-2-4 11:34
我也看不出来是什么原因,不过你截个图或许会有帮助。(全屏截图)

运行后弹出命令窗口没有反应


强制关闭后



作者: fcode    时间: 2015-2-4 20:34
这是一个非常规的问题,我比较难以判断问题所在。

1.请把源码补充完整。Open 语句的后面是什么?
2.尝试去掉 Open 语句
3.上传你在虚拟机里编译好的 exe 文件。
作者: shrine    时间: 2015-2-4 21:17
fcode 发表于 2015-2-4 20:34
这是一个非常规的问题,我比较难以判断问题所在。

1.请把源码补充完整。Open 语句的后面是什么?

Console1.rar (640.55 KB, 下载次数: 0)


open语句是为了测试写入文件是没有问题的。

这个exe在主机也是无法运行的,但是重新编译一下就可以了

作者: vvt    时间: 2015-2-4 22:07
本帖最后由 vvt 于 2015-2-4 22:10 编辑

在我这里是不需要重新编译的,直接就可以运行。并输出了 6

但首先你得创建 fort888.dat 文件。猜你的 Open 语句里指定了 old ?

你可以尝试:
1.删除 Open 语句。
2.去掉 Status='old' 的子句。

作者: shrine    时间: 2015-2-5 07:24
vvt 发表于 2015-2-4 22:07
在我这里是不需要重新编译的,直接就可以运行。并输出了 6

但首先你得创建 fort888.dat 文件。猜你的 Open ...

在上一次层目录
作者: vvt    时间: 2015-2-5 08:33
是的。我知道在上一层目录。问题是,你编译的exe,在我这里运行正常。虚拟机里也正常。

你尝试在虚拟机里的命令行运行它吧。
作者: shrine    时间: 2015-2-7 09:15
本帖最后由 shrine 于 2015-2-7 09:39 编辑
vvt 发表于 2015-2-5 08:33
是的。我知道在上一层目录。问题是,你编译的exe,在我这里运行正常。虚拟机里也正常。

你尝试在虚拟机里 ...

在命令行里仍然不能运行成功

尝试换了虚拟机系统,xp64,win10,都不行,在主机系统都能运行成功

在win10虚拟机里,重新建立工程输入代码,编译运行成功

我现在怀疑是软件有问题,vs,或者ivf

作者: fcode    时间: 2015-2-7 09:44
不是 vs 或 ivf 的问题,因为你编译的程序在我这里可以运行。
作者: shrine    时间: 2015-2-7 10:46
把ivf2011卸载掉换成2013,可以运行了
作者: fcode    时间: 2015-2-7 10:50





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