📄 subject_57809.htm
字号:
<p>
序号:57809 发表者:Bardo 发表日期:2003-10-28 12:10:59
<br>主题:问一个初级的问题(给个高分)。关于CWinApp类!
<br>内容:CWinApp类有没有办法获得CWinApp自己的当前路径。因为没有相关成员函数或变量。需要注意的是,我们不能使用获取当前路径的方法,因为这样会得到应用程序主程序的路径。<BR>所以会有这种需求,是因为这是在DLL文件中。<BR>当然,我们可以从获取帮助文件的文件名来获取CWinApp类所在路径,除了这种笨办法以外,还有更好的方法吗?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:浪际天涯 回复日期:2003-10-28 12:17:44
<br>内容:你所指的CWinApp的当前路径是什么意思?<BR>::GetCurrentDirectory()获取到的不是主应用程序的路径,而是当前路径,比如用CFileDialog打开一个文件后,当前路径就会变成这个文件的路径<BR>::GetModuleFileName()可获取主程序的全路径
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Bardo 回复日期:2003-10-28 12:38:45
<br>内容:<BLOCKQUOTE>引用“第1楼”所言<BR><Q>你所指的CWinApp的当前路径是什么意思? ::GetCurrentDirectory()获取到的不是主应用程序的路径,而是当前路径,比如用CFileDialog打开一个文件后,当前路径就会变成这个文件的路径 ::GetModuleFileName()可获取主程序的全路径</Q></BLOCKQUOTE><BR>我在上面差不多说得很清楚:<BR>CWinApp的当前路径实际上是指有此CWinApp生成的程序文件(如:DLL,EXE,OCX)最终被安装到一个路径中,而此路径在程运行时,CWinApp中含有此当前路径信息。<BR>(注:如果再看不懂,以下也不给解释了。因为,上文中,我都给定了一个求此路径的方法了。请原谅!)
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:luo 回复日期:2003-10-28 13:40:02
<br>内容:GetModuleFileName( NULL, szPath, MAXPATH);
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:浪际天涯 回复日期:2003-10-28 14:54:30
<br>内容: char modulfile[200];<BR> ::GetModuleFileName(NULL,modulfile,200);<BR> CString strname=modulfile;//路径及文件名<BR> CString exepath=strname.Left(strname.ReverseFind('\\'));//路径<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:cool 回复日期:2003-10-28 15:14:40
<br>内容:因为DLL和OCX是附属于应用进程的,所以你无法获得DLL及OCX的当前路径,OCX好像要注册,所以查注册表可以查出来,而DLL它是包含在应用进程中的,占用应用进程高端2G的空间,所以无法通过那些函数来得到相对路径。<BR><BR>我也在做这方面的东西,主要是DLL在初始化的时候要读配置文件,后来没办法,干脆放到系统路径里算了,反正DLL可以放到系统目录下,而且查系统路径函数也是有的。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Bardo 回复日期:2003-10-29 09:14:35
<br>内容:五楼:每个DLL或OCX都是一个进程,如果是MFC,我给的方法就能得到。<BR>同时:这与注册无关。注册是运行前查路径,初始化是运行后查路径。<BR>我看你是没有想清楚,你的陈述很糊涂。<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -