如何在PPC中使用相对路径

void_pointer 2004-04-09 10:54:53
小弟初学PPC开发,遇到一个问题。

昨天用fopen()打开一个文件时,发现参数const char * filename无法使用相对路径。
比如要读取1.txt,参数为"1.txt"时指向的是\1.txt。

是否使用fopen就无法使用相对路径?
只有通过getcwd()获取当前路径来实现?
...全文
71 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
aawolf 2004-04-09
  • 打赏
  • 举报
回复
不支持,没办法。
void_pointer 2004-04-09
  • 打赏
  • 举报
回复
感谢。:)
buptpki 2004-04-09
  • 打赏
  • 举报
回复
自己取得当前目录,然后用lstrcpy(lpszDirectory, filename)可以得到绝对路径

UNICODE版本

BOOL GetCurrentDirctoryW(LPTSTR lpszDirctory)
{
LPTSTR pStr;
DWORD dwResult;
TCHAR szBuf[MAX_PATH];
BOOL bRetVal = FALSE;

if(dwResult = GetModuleFileName(NULL, szBuf, sizeof(szBuf)/sizeof(TCHAR)))
{
pStr = szBuf + dwResult*sizeof(TCHAR);
while(*pStr != L'\\')
pStr--;
*(++pStr) = L'\0';
if(lstrcpy(lpszDirctory, szBuf))
{
bRetVal = TRUE;
}
}
return bRetVal;
}

ANSI版本
BOOL VPSR_APP_GetHomeDirctoryA(char* lpszDirctory)
{
LPTSTR pStr;
DWORD dwResult;
TCHAR szBuf[MAX_PATH];
BOOL bRetVal = FALSE;

if(dwResult = GetModuleFileName(NULL, szBuf, sizeof(szBuf)/sizeof(TCHAR)))
{
pStr = szBuf + dwResult*sizeof(TCHAR);
while(*pStr != L'\\')
pStr--;
*(++pStr) = L'\0';
if(WideCharToMultiByte(CP_ACP, 0, szBuf, -1, lpszDirctory, MAX_PATH, NULL, NULL))
{
bRetVal = TRUE;
}
}
return bRetVal;
}

19,498

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧