运行正常,调试出错?

rushonin 2009-04-16 10:14:44
奇怪的现象, build成功后,在命令行下(CONSOLE程序)运行,没有问题,可是在vs2005中用F10(step over)调试,却遇到问题:
无法打开文件。

代码如下:

int _tmain(int argc, TCHAR *argv[])
{
...

bMutex=CreateMutex(NULL,FALSE,NULL);
if((Thread1=CreateThread(NULL, 4096*10, dec_h264, NULL,CREATE_SUSPENDED|STACK_SIZE_PARAM_IS_A_RESERVATION,NULL))!=NULL)
_tprintf(_T("\nCreat thread success!\n"));


_tprintf(_T("opening file :%s\n"),argv[1]);
fp=_tfopen(argv[1],_T("rb"));
if(fp==NULL) {_tprintf(_T("open %s failed\n"),argv[1]);return 0;}

...
}

直接在命令行运行exe文件,很顺利的打开文件,可以执行后续代码。
可是用单步调试却出现 “open XXX failed” 就return了。

目前在win32平台调试。
...全文
93 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
博说医械研发 2009-04-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 91program 的回复:]
CE没有当前工作目录这个概念,不像Windows XP等桌面系统,所以必须写全路径
[/Quote]
真的是这样吗?基于我的程序运行情况表示怀疑。
我的应用程序调用一个dll文件,程序中没有写全路径,如果把应用程序和dll放在同一个目录就能正常执行,否则就说找不到相应组件,我的是CE5.0
liaifeilove 2009-04-17
  • 打赏
  • 举报
回复
学习
xqhrs232 2009-04-17
  • 打赏
  • 举报
回复
原来是没找到文件啊
gooogleman 2009-04-17
  • 打赏
  • 举报
回复
恭喜,接分。
91program 2009-04-17
  • 打赏
  • 举报
回复
CE没有当前工作目录这个概念,不像Windows XP等桌面系统,所以必须写全路径
91program 2009-04-17
  • 打赏
  • 举报
回复
接分
rushonin 2009-04-16
  • 打赏
  • 举报
回复
不好意思,已经解决了。
在vs2005的project的调试参数中把路径写全就好了。
这个鸟visual studio,问题一大堆,我要打开的文件明明和exe文件都放在debug目录下,还需要把整个路径写全。
我用命令行时,自己手动输入参数都只需要一个文件名!

19,504

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧