s**i 发帖数: 83 | 1 我写了一个直接支持底层硬件的dll,在vc2005里面
调试的时候有个很怪的现象:
我用F5在vc里面运行的时候(不设断点),程序运行正常
;
我直接运行exe文件的时候,总是报硬件超时。
我检查了路径下所有的文件,确认俩种运行调的文件都是相同的。
为什么同一个exe用F5和直接双击运行结果会不一样呢?
any clue??
谢谢! |
X****r 发帖数: 3557 | 2 即使不设断点直接F5运行VC也要attach你程序的这个进程。
你试试ctrl-F5
【在 s**i 的大作中提到】 : 我写了一个直接支持底层硬件的dll,在vc2005里面 : 调试的时候有个很怪的现象: : 我用F5在vc里面运行的时候(不设断点),程序运行正常 : ; : 我直接运行exe文件的时候,总是报硬件超时。 : 我检查了路径下所有的文件,确认俩种运行调的文件都是相同的。 : 为什么同一个exe用F5和直接双击运行结果会不一样呢? : any clue?? : 谢谢!
|
X****r 发帖数: 3557 | 3 我的意思是说F5和exe运行区别很大。
ctrl+F5和exe运行区别不大。 |
h**p 发帖数: 377 | 4 能具体说说什么区别么? F5和exe?
我就是想知道什么情况下程序不能正常运行
【在 X****r 的大作中提到】 : 我的意思是说F5和exe运行区别很大。 : ctrl+F5和exe运行区别不大。
|
h**p 发帖数: 377 | 5 F5也是运行debug目录下的那个exe文件,为什么有区别?
那个exe应该也是debug非release的啊
【在 X****r 的大作中提到】 : 我的意思是说F5和exe运行区别很大。 : ctrl+F5和exe运行区别不大。
|
X****r 发帖数: 3557 | 6 是这样的,你用F5运行程序的时候,VC会把自己作为一个debugger去attach到你这个
被运行的exe 文件所产生的进程上,所以在细微的地方会有一些区别,比如有许多
操作这个进程就会通知VC。如果你的程序的结果对运行速度比较敏感的话就会有差别了。
我说的ctrl-F5就没有attach debugger这一步而是直接运行。
【在 h**p 的大作中提到】 : F5也是运行debug目录下的那个exe文件,为什么有区别? : 那个exe应该也是debug非release的啊
|
h**p 发帖数: 377 | 7 就是说用F5程序会运行的慢一些是吧
不过,我的这个程序还有一个特点,
就是如果我一开始用exe不灵,用F5 run一遍之后,在run exe就能work了,这个能用这
个解释么?
问题比较怪,只是想排除一些可能,想破头了
了。
【在 X****r 的大作中提到】 : 是这样的,你用F5运行程序的时候,VC会把自己作为一个debugger去attach到你这个 : 被运行的exe 文件所产生的进程上,所以在细微的地方会有一些区别,比如有许多 : 操作这个进程就会通知VC。如果你的程序的结果对运行速度比较敏感的话就会有差别了。 : 我说的ctrl-F5就没有attach debugger这一步而是直接运行。
|
X****r 发帖数: 3557 | 8 你要是进行硬件操作的话那是一切皆有可能,旁人哪里能知道啊。
比如说你的硬件需要一定时间第一次初始化,一旦初始化成功过再次初始化就会很快,
所以你如果超时用的简单循环poll的方法就会在run exe的时候失败,但一但成功过就
可以用了。
我只是随便说说,真正的原因只有你自己才能弄明白的。
【在 h**p 的大作中提到】 : 就是说用F5程序会运行的慢一些是吧 : 不过,我的这个程序还有一个特点, : 就是如果我一开始用exe不灵,用F5 run一遍之后,在run exe就能work了,这个能用这 : 个解释么? : 问题比较怪,只是想排除一些可能,想破头了 : : 了。
|
h**p 发帖数: 377 | 9 困倒了,等不了了
睡觉去鸟
【在 h**p 的大作中提到】 : 就是说用F5程序会运行的慢一些是吧 : 不过,我的这个程序还有一个特点, : 就是如果我一开始用exe不灵,用F5 run一遍之后,在run exe就能work了,这个能用这 : 个解释么? : 问题比较怪,只是想排除一些可能,想破头了 : : 了。
|
h**p 发帖数: 377 | 10 嗯,anyway谢谢你的答复。
不过我的那个问题不是初始化,是重复对板子的读写,
run exe就是死在等待的while loop里面,的确,很难江。
【在 X****r 的大作中提到】 : 你要是进行硬件操作的话那是一切皆有可能,旁人哪里能知道啊。 : 比如说你的硬件需要一定时间第一次初始化,一旦初始化成功过再次初始化就会很快, : 所以你如果超时用的简单循环poll的方法就会在run exe的时候失败,但一但成功过就 : 可以用了。 : 我只是随便说说,真正的原因只有你自己才能弄明白的。
|
D*******a 发帖数: 3688 | 11 速度也会很有差别
了。
【在 X****r 的大作中提到】 : 是这样的,你用F5运行程序的时候,VC会把自己作为一个debugger去attach到你这个 : 被运行的exe 文件所产生的进程上,所以在细微的地方会有一些区别,比如有许多 : 操作这个进程就会通知VC。如果你的程序的结果对运行速度比较敏感的话就会有差别了。 : 我说的ctrl-F5就没有attach debugger这一步而是直接运行。
|