幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2918|回复: 5

问个关于PATH的问题一直没有理解

[复制链接]

50

主题

742

帖子

402

积分

版主

自定义头衔

Rank: 7Rank: 7Rank: 7

积分
402
发表于 2008-2-23 10:53:05 | 显示全部楼层 |阅读模式
就是说,在WIN32下面的那个PATH变量,一旦CMD下面,某些EXE所在的路径被指定在PATH下面了,那么这些EXE可以不需要完全的路径直接运行,

接下来的一个问题就是,一个EXE需要若干DLL的情况,这些DLL分散在不同的文件夹下,但是我发现如果直接把所有的路径都指定完了,EXE还是会因为DLL不存在而报错……这样的话PATH没有起到作用?

如果所有的EXE都如此也就罢了DLL和EXE在同一个路径下,
问题是很多并不是这样,比如KERNEL32.DLL就在SYSTEM32下面啊……于是很郁闷…………
应该怎么做呢?我想要的是把公用的DLL放置在同一个目录下面(比如就是VC的MSVCRT80),然后其他的EXE分别在各自的目录下……
Style-C
回复

使用道具 举报

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
发表于 2008-2-26 12:40:08 | 显示全部楼层
这个方法应该可行。我也这样设过。
当时用的是SDL,把SDL.dll放在system32下自己建的myruntime目录下,然后把c:\\windows\\system32\\myruntime目录设到系统path下,就可以实现exe和dll不在同一个目录下。

如果不行,在设好后,注销重登陆一次试试,应该没问题的。

还有一种可能,是不是在用WINAPI来调用的DLL的时候,写了绝对路径,或是path中查不到的相对路径?
え~え~お!!!
回复 支持 反对

使用道具 举报

23

主题

218

帖子

2470

积分

⑥精研

积分
2470
发表于 2008-2-26 13:17:24 | 显示全部楼层
对于所有EXE和DLL(也就是模组),系统都会先查找宿主EXE所在目录,然后是PATH变量里的目录,除非使用了绝对路径……
ONScripter for PSP/Windows中文版 http://blog.163.com/john_he_
回复 支持 反对

使用道具 举报

50

主题

742

帖子

402

积分

版主

自定义头衔

Rank: 7Rank: 7Rank: 7

积分
402
 楼主| 发表于 2008-3-1 08:39:28 | 显示全部楼层
那就奇怪了,偶肯定设置了PATH!

set PATH = "D:\\test\\bin\\";%PATH%
有什么问题呢……
Style-C
回复 支持 反对

使用道具 举报

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
发表于 2008-3-1 11:18:23 | 显示全部楼层
set path = 后面的那个路径是不用加""号的.
cmd命令中设置的路径在cmd关闭后就失效了.
要长期使用还是在"我的电脑"-"属性"那里设置.
不知道用winapi的SetEnvironmentVariable设出来的path是不是长期保存的.
え~え~お!!!
回复 支持 反对

使用道具 举报

50

主题

742

帖子

402

积分

版主

自定义头衔

Rank: 7Rank: 7Rank: 7

积分
402
 楼主| 发表于 2008-3-2 19:11:41 | 显示全部楼层
当然不回关闭了- -|||这点偶还是知道的,否则应该直接去修改环境变量的啊……
Style-C
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-5-3 13:35 , Processed in 0.024668 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表