avatar
遇到一个怪问题# Programming - 葵花宝典
s*i
1
我写了一个直接支持底层硬件的dll,在vc2005里面
调试的时候有个很怪的现象:
我用F5在vc里面运行的时候(不设断点),程序运行正常

我直接运行exe文件的时候,总是报硬件超时。
我检查了路径下所有的文件,确认俩种运行调的文件都是相同的。
为什么同一个exe用F5和直接双击运行结果会不一样呢?
any clue??
谢谢!
avatar
X*r
2
即使不设断点直接F5运行VC也要attach你程序的这个进程。
你试试ctrl-F5

【在 s**i 的大作中提到】
: 我写了一个直接支持底层硬件的dll,在vc2005里面
: 调试的时候有个很怪的现象:
: 我用F5在vc里面运行的时候(不设断点),程序运行正常
: ;
: 我直接运行exe文件的时候,总是报硬件超时。
: 我检查了路径下所有的文件,确认俩种运行调的文件都是相同的。
: 为什么同一个exe用F5和直接双击运行结果会不一样呢?
: any clue??
: 谢谢!

avatar
X*r
3
我的意思是说F5和exe运行区别很大。
ctrl+F5和exe运行区别不大。
avatar
h*p
4
能具体说说什么区别么? F5和exe?
我就是想知道什么情况下程序不能正常运行

【在 X****r 的大作中提到】
: 我的意思是说F5和exe运行区别很大。
: ctrl+F5和exe运行区别不大。

avatar
h*p
5
F5也是运行debug目录下的那个exe文件,为什么有区别?
那个exe应该也是debug非release的啊

【在 X****r 的大作中提到】
: 我的意思是说F5和exe运行区别很大。
: ctrl+F5和exe运行区别不大。

avatar
X*r
6
是这样的,你用F5运行程序的时候,VC会把自己作为一个debugger去attach到你这个
被运行的exe 文件所产生的进程上,所以在细微的地方会有一些区别,比如有许多
操作这个进程就会通知VC。如果你的程序的结果对运行速度比较敏感的话就会有差别了。
我说的ctrl-F5就没有attach debugger这一步而是直接运行。

【在 h**p 的大作中提到】
: F5也是运行debug目录下的那个exe文件,为什么有区别?
: 那个exe应该也是debug非release的啊

avatar
h*p
7
就是说用F5程序会运行的慢一些是吧
不过,我的这个程序还有一个特点,
就是如果我一开始用exe不灵,用F5 run一遍之后,在run exe就能work了,这个能用这
个解释么?
问题比较怪,只是想排除一些可能,想破头了

了。

【在 X****r 的大作中提到】
: 是这样的,你用F5运行程序的时候,VC会把自己作为一个debugger去attach到你这个
: 被运行的exe 文件所产生的进程上,所以在细微的地方会有一些区别,比如有许多
: 操作这个进程就会通知VC。如果你的程序的结果对运行速度比较敏感的话就会有差别了。
: 我说的ctrl-F5就没有attach debugger这一步而是直接运行。

avatar
X*r
8
你要是进行硬件操作的话那是一切皆有可能,旁人哪里能知道啊。
比如说你的硬件需要一定时间第一次初始化,一旦初始化成功过再次初始化就会很快,
所以你如果超时用的简单循环poll的方法就会在run exe的时候失败,但一但成功过就
可以用了。
我只是随便说说,真正的原因只有你自己才能弄明白的。

【在 h**p 的大作中提到】
: 就是说用F5程序会运行的慢一些是吧
: 不过,我的这个程序还有一个特点,
: 就是如果我一开始用exe不灵,用F5 run一遍之后,在run exe就能work了,这个能用这
: 个解释么?
: 问题比较怪,只是想排除一些可能,想破头了
:
: 了。

avatar
h*p
9
困倒了,等不了了
睡觉去鸟

【在 h**p 的大作中提到】
: 就是说用F5程序会运行的慢一些是吧
: 不过,我的这个程序还有一个特点,
: 就是如果我一开始用exe不灵,用F5 run一遍之后,在run exe就能work了,这个能用这
: 个解释么?
: 问题比较怪,只是想排除一些可能,想破头了
:
: 了。

avatar
h*p
10
嗯,anyway谢谢你的答复。
不过我的那个问题不是初始化,是重复对板子的读写,
run exe就是死在等待的while loop里面,的确,很难江。

【在 X****r 的大作中提到】
: 你要是进行硬件操作的话那是一切皆有可能,旁人哪里能知道啊。
: 比如说你的硬件需要一定时间第一次初始化,一旦初始化成功过再次初始化就会很快,
: 所以你如果超时用的简单循环poll的方法就会在run exe的时候失败,但一但成功过就
: 可以用了。
: 我只是随便说说,真正的原因只有你自己才能弄明白的。

avatar
D*a
11
速度也会很有差别

了。

【在 X****r 的大作中提到】
: 是这样的,你用F5运行程序的时候,VC会把自己作为一个debugger去attach到你这个
: 被运行的exe 文件所产生的进程上,所以在细微的地方会有一些区别,比如有许多
: 操作这个进程就会通知VC。如果你的程序的结果对运行速度比较敏感的话就会有差别了。
: 我说的ctrl-F5就没有attach debugger这一步而是直接运行。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。