疑惑得很!VC环境究竟在背后做了些什么??为什么我的一个应用程序在VC环境下编译运行就可以正常运行,但是如果我单独双击打开应用程序就

djfu 2005-12-25 12:50:32
我有一个VC工程,如果我用VC打开该工程,编译、运行,我的应用程序可以正常运行;

但是,如果我进入到我的VC工程的EXE 输出目录,直接双击运行我的应用程序,

我的应用程序运行就不正常了!

这是为什么???????

疑惑啊!
...全文
82 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜牛 2005-12-25
  • 打赏
  • 举报
回复
当前路径不同。
yangyong1980919 2005-12-25
  • 打赏
  • 举报
回复
程序的对dll的搜索顺序如下:
The directory from which the application loaded.
The current directory.
The system directory. Use the GetSystemDirectory function to get the path of this directory.
The 16-bit system directory. There is no function that obtains the path of this directory, but it is searched.

djfu 2005-12-25
  • 打赏
  • 举报
回复
这里我的疑问就是默认的DOS 路径下是否包含了一些默认的环境参数?
我的这个程序是需要一些dll才能运行的,如果我把d:\myPrj\目录下的dll文件删除,
在dos命令下用:
d:\myprj> myExe.exe
也可以正常启动我的myExe.exe并正常运行。

问题是dos模式下怎么找到我的那些dll文件的?例如mydll1.dll位于c:\winnt\system32下。
DOS环境的默认环境参数是多少?
djfu 2005-12-25
  • 打赏
  • 举报
回复
可是更令我觉得莫名其妙的问题是:
我用资源管理器打开我的应用程序(myExe.exe)所在的目录(d:\myprj),双击myExe.exe,这时程序不能正常运行;但是如果我用命令行工具cmd进入到dos模式下,用命令:
d:\myPrj>myExe.exe
启动我的应用程序,奇怪的事情发生了,我的应用程序这时居然可以正常运行了!!!




Atomictry 2005-12-25
  • 打赏
  • 举报
回复
你的程序Debug同级目录下应该有一些文件供你的exe调用的,当你双击的时候,这个exe找不到相关文件就会报错。

请先检查你的Debug同级目录下是否有*.lib, *.dll, *.其他什么文件 等等,如果有不是vc生成的,拷贝到exe下应该就可以了。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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