社区
C++ 语言
帖子详情
如何得到程序的运行目录
SnakeYangNan
2005-01-21 10:10:45
我最近在写一程序,要求运行时得到自身的目录以便以后的操作
当然是动态的,我肯定不能保证我的程序在任何的机器上目录一样啊
我现在没什么好办法,希望强人指点一下啊
...全文
326
8
打赏
收藏
如何得到程序的运行目录
我最近在写一程序,要求运行时得到自身的目录以便以后的操作 当然是动态的,我肯定不能保证我的程序在任何的机器上目录一样啊 我现在没什么好办法,希望强人指点一下啊
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xy2001
2005-07-18
打赏
举报
回复
mark
YFY
2005-01-21
打赏
举报
回复
在 strcat(szCurPath,"\\MsgTransfer.evt"); 之前获取到的就是.
YFY
2005-01-21
打赏
举报
回复
给你一段我写的代码,其中有,szCurPath存放的就是路径:
int WriteToLog(int iErrorNumber,TCHAR *szMsg)
{
int i = 0;
int iLastSperate = 0;
TCHAR szCurPath[272];
HANDLE hWndFile;
WIN32_FIND_DATA fileFind;
FILE *fp;
SYSTEMTIME lpSystemTime;
GetModuleFileName(GetModuleHandle(NULL),szCurPath,256);
for (i=0; i<256; i++)
{
if (szCurPath[i] == '\\')
{
iLastSperate = i;
}
else if(szCurPath[i] == '\0')
{
break;
}
}
if (iLastSperate > 0 && i < 256)
{
szCurPath[iLastSperate] = '\0';
}
else
{
return (-1);
}
strcat(szCurPath,"\\MsgTransfer.evt");
//printf("current path: %s \n",szCurPath);
GetLocalTime(&lpSystemTime);
printf("current time: %04d-%02d-%02d %02d:%02d:%02d:%03d\n",
lpSystemTime.wYear,lpSystemTime.wMonth,lpSystemTime.wDay,
lpSystemTime.wHour,lpSystemTime.wMinute,lpSystemTime.wSecond,
lpSystemTime.wMilliseconds);
hWndFile = FindFirstFile(szCurPath,&fileFind);
FindClose(hWndFile);
if (INVALID_HANDLE_VALUE == hWndFile)
{
if ((fp = fopen(szCurPath,"w")) == NULL)
{
return (-2);
}
fprintf(fp,"%04d-%02d-%02d %02d:%02d:%02d:%03d Event:%06d %s\n",
lpSystemTime.wYear,lpSystemTime.wMonth,lpSystemTime.wDay,
lpSystemTime.wHour,lpSystemTime.wMinute,lpSystemTime.wSecond,lpSystemTime.wMilliseconds,
iErrorNumber,szMsg);
fclose(fp);
}
else
{
if (fileFind.nFileSizeLow > 61440) // if event file size > 60K, delete, create new
{
if (DeleteFile(szCurPath))
{
if ((fp = fopen(szCurPath,"w")) == NULL)
{
return (-2);
}
fprintf(fp,"%04d-%02d-%02d %02d:%02d:%02d:%03d Event:%06d %s\n",
lpSystemTime.wYear,lpSystemTime.wMonth,lpSystemTime.wDay,
lpSystemTime.wHour,lpSystemTime.wMinute,lpSystemTime.wSecond,lpSystemTime.wMilliseconds,
iErrorNumber,szMsg);
fclose(fp);
}
}
else
{
if ((fp = fopen(szCurPath,"a+")) == NULL)
{
return (-3);
}
else
{
fprintf(fp,"%04d-%02d-%02d %02d:%02d:%02d:%03d Event:%06d %s\n",
lpSystemTime.wYear,lpSystemTime.wMonth,lpSystemTime.wDay,
lpSystemTime.wHour,lpSystemTime.wMinute,lpSystemTime.wSecond,lpSystemTime.wMilliseconds,
iErrorNumber,szMsg);
fclose(fp);
}
}
}
/***********************************************
if (SetCurrentDirectory(szCurPath) != 0)
{
printf("set current path ok...\n");
}
else
{
printf("set current path failure!\n");
}
***********************************************/
return (1);
}
freegitago
2005-01-21
打赏
举报
回复
VC中可以使用GetMoudleFileName(...)
main函数的第一个参数也是当前可执行程序的目录:
int main(argv, char** argc)
{
cout<<argc[0]<<"\n";
}
CMyMfc
2005-01-21
打赏
举报
回复
GetModuleFileName得到的是绝对路径加程序名
自己把程序名去掉就是路径了
piaozi2003
2005-01-21
打赏
举报
回复
DWORD GetCurrentDirectory(
DWORD nBufferLength, // size of directory buffer
LPTSTR lpBuffer // directory buffer
);
SnakeYangNan
2005-01-21
打赏
举报
回复
多谢了
oyljerry
2005-01-21
打赏
举报
回复
GetModuleFileName获得全路径
ASP.NET Core 6 Web Api 入门
在.NET
程序
运行
之前,.NET
运行
环境将其编译成与物理硬件相关的机器码,不再基于“虚拟机”的
运行
方式,其
运行
效率比肩于直接用C/C++编写的“机器码”
程序
。相对于“二进制”的C/C++
运行
程序
来说,.NET
运行
环境在编译...
C++获取当前
程序
运行
目录
获取
程序
当前
运行
目录
c++_获取
程序
运行
的
目录
【代码】c++_获取
程序
运行
的
目录
。
【WIN32】【C/C++】获取
程序
运行
目录
C++获取
程序
运行
目录
MFC获取
程序
运行
目录
MFC获取
程序
运行
目录
C++ 语言
64,637
社区成员
250,559
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章