看板Programming
标 题Re: [请益] Win32 progrmming--CurrentDirectory
发信站=?big5?B?SElTRFQgrbes6qzsp97F58PSprOtraS9pX (Sun Dec 28 19:50:02 2008)
转信站ptt!news.ntu!feeder.seed.net.tw!netnews!not-for-mail
1.
不是,不要想太多,就是工作路径,例如捷径里面有个开始位置,那个就可以跟执行档不同,也是工作路径。
工作路径可以独立设定,透过 Windows Shell 跑的时候,若没有设定,预设会是执行档路径。例如档案总管是 Windows Shell 的一部分。
当你 A 呼叫 B 所用的 API 没指定 B 的工作路径时,B 的 Process 才会在 A 的工作路径上,若是用编译器或语言自带的 Shell 方法,则看编译器是否有预设值而定。
A / B / E 是三个独立的 Process ,可以有各自的工作路径。
2.
基本上是,但有时候要看编译器是不是有啥鸟设定。
3,4.
我自己习惯用
Module32First / Module32Next
来列举。
==> 本文由 "moon <[email protected]>"
> 於 news:4da2OU%245zZ%40ptt.cc 发表
>
> 不好意思, 想请教各位..问题可能很蠢...Orz...
> [A.exe] ---呼叫---> [B.exe] ---呼叫-->[C.dll]---呼叫-->[E.exe]
> 1.CurrentDirectory (使用GetCurrentDirectory API)
> (不使用SetCurrentDirectory的时候)
> ---请问他的明确定义, 是指最上层执行档(exe)的所在目录吗 ?
> 2.当我使用 "\\abcd.txt"这样的相对路径
> ---这个档案的full path 是不是即是<CurrentDirectory>\abcd.txt
>
> 4.GetModuleFileName
> ---第一个参数是NULL, 得到的应该是"Current module"
> (实验结果似乎是得到执行档)
> ---指名Module或先前指名执行文件的名称 会得到dll/exe
> 3.Current Module
> ---意思是指现在执行文件 可以是exe/dll 还是只有指exe
> ======================================================
> 所以对[E.exe] 而言, CurrentDirectory ---------->[A.exe] 的目录
> GetModuleFileName(NULL..)-->[E.exe] 的目录
> Current Module ------------>[E.exe]
> [C.dll] 而言. CurrentDirectory ---------->[A.exe]的目录
> GetModuleFileName(NULL..)-->[B.exe]的目录
> Current Module ------------>[C.dll]
>
> 想请问一下....这样的定义是对的吗 ...Orz!!
> 叩谢
>
--
风禹科技验证有限公司 ASP.NET Web News Reader 0.2.7 UTF-8 Beta
网站地图
http://tlcheng.twbbs.org/wwwmap.htm
流域防洪/区域水资源/徐昇网/玫瑰图/语音通讯 文章与程式
Basic/Fortran/Windows API/.Net/辅助说明档 原始码、文章与讨论
微软程式设计、系统管理使用新技术论坛讨论区,网友回覆後即时简讯、电子邮件通知:
MSDN:
http://forums.microsoft.com/msdn-cht/default.aspx?siteid=14
TechNet:
http://forums.microsoft.com/technet-cht/default.aspx?siteid=23
--
ASPNET News Reader
http://tlcheng.twbbs.org/News/Reader.aspx
RSS 2.0
http://tlcheng.twbbs.org/News/rss2.aspx?Action=List&Newsgroup=tw.bbs.comp.language