c++语言,vc++6.0环境,读写相对路径文件,请高手指点
用的vc++6.0环境,c++语言,现在我有一个文件夹叫experts,它里面又有两个文件夹分别叫libraries和files,现在libraries里面有个c++程序...
用的vc++6.0环境,c++语言,现在我有一个文件夹叫experts,它里面又有两个文件夹分别叫libraries和files,现在libraries里面有个c++程序(即dll),files里面有个文件orders.txt,我想让c++程序读写order.txt,打开文件时怎么写路径啊?
展开
展开全部
vc工程目录或.exe程序是在libraries吗,是的话 "../experts/files/orders.txt" ..(2个点)表示上级目录" ;不是的话 自己推算下
我的方法没用?
我的方法没用?
追问
实际上我使用vc++6.0写的一个动态链接库dll文件,生成的不是.exe而是.dll(就是说关系是这样的,我用vc++6.0编写了一个dll,然后我把dll放到了libraries中,另外一个程序调用这个dll,dll负责读写文件orders.txt.orders.txt在files中,,files和libraries在experts文件夹中,我不知道怎么写相对路径。麻烦您再给我解答一下吧。我把生成的dll移动到libraries中有影响吗?我试了"../experts/files/orders.txt"结果还是写不进去
追答
前面是我理解错了 应该改成"../files/orders.txt" 你试试 。
如果你dll的位置是exe的话肯定行 我都这么用的。
或者说以你调用dll的那个程序a为主 推算一下
比如a在experts文件夹下 那路径就是"file/orders.txt"。
不行的话就不知道了 其实我也是新手 见谅 呵呵。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1. ..\files\orders.txt
2. 得到绝对路径,然后拼串
char exe_file_name[MAX_PATH];
GetModuleFileNameA(NULL, exe_file_name, MAX_PATH);
得到程序的绝对路径,然后截取,拼串, 不要用GetCurrentDirectory。
2. 得到绝对路径,然后拼串
char exe_file_name[MAX_PATH];
GetModuleFileNameA(NULL, exe_file_name, MAX_PATH);
得到程序的绝对路径,然后截取,拼串, 不要用GetCurrentDirectory。
追问
我用了第一种方法,结果就是写不进去,我都不知道怎么回事,第二种办法能详细给我说说吗?GetModuleFileNameA()的三个参数分别是什么?谢谢你了!
追答
第一个参数是程序的实例(其实是近似,可以这样理解,就是启动程序是的hInstance参数,如果参数是NULL表示,当前程序实例)
第二个参数: 接受程序的全部路径的缓冲区
第三个参数: 缓冲区大小
第一个应传入DllMain 中的hInst参数
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
"X:\\experts\\files\\order.txt": X是盘符,包括experts目录前面到分区盘根目录的所有路径。
追问
因为我想让程序不受安装目录的限制,所以想读取相对路径,即无论按在哪根目录,都有文件夹experts,它里面都有libraries和files两个文件夹,libraries中的c++程序都可以读写files中orders.txt文件,我想知道相对路径怎么写。谢谢啦,再给我解答一下吧
追答
这些涉及windows API调用方面的内容,我不是和熟悉,对不起。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先用GetModuleFileName获取应用程序的决定路径,然后就可以确定相对路径了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
主要功能是c++的编译器,但同时也可以编译c语言程序。
你如果单纯想学c语言,还是用turbo
c3.0完整版,这个比较传统,基本上在这个编译器上能通过,其它上也没问题
你如果单纯想学c语言,还是用turbo
c3.0完整版,这个比较传统,基本上在这个编译器上能通过,其它上也没问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |