在同一个目录下有一个exe,一个dll,和一个ini文件,比如
GetPrivateProfileStri("Selection","m_radio",NULL,letter,256,".\\Selection.ini")为什么exe可以读取ini内容,而dll不可以读取ini内容?ps:不能用ini的绝对路径,因为每部电脑的路径都不一样
GetPrivateProfileStri("Selection","m_radio",NULL,letter,256,".\\Selection.ini")为什么exe可以读取ini内容,而dll不可以读取ini内容?ps:不能用ini的绝对路径,因为每部电脑的路径都不一样
解决方案 »
- 离职散分
- javascript 如何传递一个变量给ATL的DLL
- DLL不能静态编译MFC常用DLL吗
- VC6.0 如何有效查找项目内容
- 用pipe读取console输出信息的问题,郁闷了
- 提个动态库的问题~
- 用directshow抓屏
- 在线等:after Normal block
- 有没有ScrollText的源码(C++)?
- 一个api的问题,怎样取得文件的详细信息?
- 送分!如何将txt文件内容依序写进vc结构体,并转化为CArray?
- 我的MDI程序在启动的时候通过OnFileNew()创建了三个文档。我是想在文档对应的视图中绘图,比如在文档1对应的视图中画圆,在文档2对应的视图中画矩形.但是我不知道在OnDraw()函数中如何添加代码来实现。因为我在OnDraw()函数中添加了画圆的程
==你这个概念就不对了。正是因为在各个电脑上路径不一样,才需要用绝对路径啊。如果用相对,你怎么知道如何相对呢?既然路径是变化的,你应该将该文件的路径作为参数传进来,有外部来定这个文件的位置。
而CurrentDirectory并不等同于exe的执行路径,正如cmd中的,CurrentDirectory是可以改的
所以,你要的并不是这样的相对路径,而是应该使用exe执行文件的路径来拼接这个配置文件的路径
当然前提是你没有修改当前目录
三个文件都放在同一个目录下
AFX_MANAGE_STATE(AfxGetStaticModuleState()); //前面要加这个了,否则呢得到的就是调用dll的exe的路径了,对吧
Length = GetModuleFileName(AfxGetApp()->m_hInstance, CurrentPath, _MAX_PATH);
看看这篇文章了,呵呵!
http://blog.csdn.net/na_he/archive/2008/05/07/2408655.aspx.
希望是我说得那么回事了,呵呵!
能否留下你的邮箱,我发给你看看,如果这个问题解决了,另外开贴以100分相谢
我也曾经用过GetModuleFileName(),但是出现跟我以前遇到的问题是一样的
http://topic.csdn.net/u/20080523/14/f36c8a7f-e1c8-4283-86d2-f5108f76599a.html