看流星社区

 找回密码
 注册账号
查看: 1967|回复: 0

SetCurrentDirectory(),GetCurrentDirectory(),GetModuleFileName()的区别

[复制链接]

该用户从未签到

发表于 2014-3-11 15:38:34 | 显示全部楼层 |阅读模式
用于设置程序的目录地址,但EXE文件不会放在这个地方

BOOL SetCurrentDirectory(
  LPCTSTR lpPathName   // 程序的目录设置到地址
);

得到SetCurrentDirectory()设置的位置,如果没有设置则得到的是当前工程的位置

DWORD GetCurrentDirectory(
  DWORD nBufferLength,  // 缓冲区大小
  LPTSTR lpBuffer              // 存放地址的缓冲区

);

得到EXE的位置

DWORD GetModuleFileName(
  HMODULE hModule,    // 所要得到的EXE的应用程序句柄

  LPTSTR lpFilename,     // 存放地址的缓冲区
  DWORD nSize             // 缓冲区大小
);


注:"..//filename.*"这得到的是工程目录

例:


当前工程建在:"D:/", 工程名为:"Test"

char *lpPath= new char [MAX_PATH];

strcpy(lpPath,"..//filename.*");                   //最终的目录为"D:/filename.*"

GetModuleFileName(NULL, p, MAX_PATH);  //得到的是"D:/Test/Debug/Test.exe"

GetCurrentDirectory(MAX_PATH, lpPath);   //得到的是"D:/Test"

SetCurrentDirectory("C://");                       //把目录设到"C:/"


GetCurrentDirectory(MAX_PATH, lpPath);   //得到的是"C:/Test"

GetModuleFileName(NULL, p, MAX_PATH); //得到的是"D:/Test/Debug/Test.exe"
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-5-14 17:41

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表