C语言获取执行文件(XXX.exe)文件名和目录路径

同CSDN上的 https://blog.csdn.net/Higashino_Keigo/article/details/80489874

C语言获取执行文件(XXX.exe)文件名和目录路径

vc2010编译通过

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<windows.h>
 4 #include<stdlib.h>
 5
 6 int main(int argc,char *argv[]){
 7
 8     printf("%s\n",argv[0]); //用主函数参数自带的 argv[0] 输出路径
 9
10     char path[100];
11     GetModuleFileName(NULL, path, 100); //调用win api 获得路径
12     printf("%s\n",path);
13
14     char *p = strrchr(path,‘\\‘); //截取到最后的"\",之后是XXX.exe文件名
15     printf("%s\n",p);
16
17     char *name = p + 1; //截去"\",只留下文件名
18     printf("%s\n",name); //输出文件名
19
20     char path2[100];
21     GetCurrentDirectory(100, path2); //获取当前进程目录路径,与上面的不同,具体可以自己试试
22     printf("%s\n",path2);
23
24     system("pause");
25     return 0;
26 }

原文地址:https://www.cnblogs.com/Duck-Quick/p/9102830.html

时间: 2024-08-05 22:50:12

C语言获取执行文件(XXX.exe)文件名和目录路径的相关文章

关于如何便捷地以命令行的形式打开exe执行文件和进入文件夹

经常以命令行的形式打开exe执行文件的同学应该知道,直接双击是会闪退,正确的打开方式是这样:运行cmd.exe--"盘符:"--"cd 路径"--"执行文件.exe". 我这里提供一个便捷的方法,原理和上面的一样:打开注册表,在"HKEY_CLASSES_ROOT\*\"下面新建项名为"shell"的项,在项"shell"下新建项名为"通过cmd打开此文件"的项,在项

轻松解决U盘中病毒,文件变成.exe执行文件的问题

U盘中的文件都变成.exe可执行文件是怎么回事?告诉你,你的U盘中病毒了,那么如何清除呢?小编现在就告诉你几个简单方法,轻松就能搞定U盘中病毒问题. 方法1: (1)首先使用杀毒软件把U盘杀杀毒,除去电脑中那些.exe执行病毒 (2)用记事本新建一个文本,然后输入Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Fo

设置当前exe执行文件为进程工作目录

设置当前exe执行文件为进程工作目录 两种办法: 1,   API void _splitpath( const char *path, char *drive, char *dir, char *fname, char *ext ); 这个函数将文件全名(带路径)分解成路径名,文件名,后缀名. 2, API BOOL PathRemoveFileSpec(           LPTSTR pszPath ); 使用例子: #include <windows.h> #include <

C++错误——”无法启动程序”…\xxx.exe” 系统找不到指定的文件”

背景 在VS2010环境下,升级了一个用C++编写的程序,编译生成成功,但是,不能在VS中直接运行(可以通过打开debug文件目录的exe应用程序运行),提示以下错误:"无法启动程序"-\xxx.exe" 系统找不到指定的文件",如截图1. 截图1 解决方法 1.选择工程,右键单击属性,打开工程的属性页,参考截图2: 截图2 2.选择"配置属性->General",选择output directory ,设置为"inherit f

matlab的m程序转执行文件exe

转换主要有两步: 第一步 设置编译器 在命令窗口输入 mbuild -setup 根据提示操作即可,.如下图我的设置 第二步 转换执行文件 命令行输入 mcc -m main   即可(输入 mcc -e main  文件执行时没有黑色窗口) 等待时间有些长,其中main 是主程序的函数名根据你的m文件不同需要更改. 在m文件的 开头写 function main 注:如果需要在没有安装matlab环境下运行需要安装软件MCRInstaller.exe  软件在MATLAB安装文件夹中 %\MA

.Net下 自动执行MSI和EXE文件

MSI是安装文件,需要系统自带的msiexec.exe来执行 var tempDir = @"D:\UploadFiles\SCADASetupWix.msi"; var start = new ProcessStartInfo("msiexec.exe", "/i \"" + tempDir ); start.WindowStyle = ProcessWindowStyle.Normal; start.CreateNoWindow =

[Linux] 更新PATH环境变量或默认执行文件搜索路径

1.环境变量(PATH) 在Linux中,在执行命令时,系统会按照PATH的设置,去每个PATH定义的路径下搜索执行文件,先搜索到的文件先执行. 我们知道查阅文件属性的指令ls 完整文件名为:/bin/ls(这是绝对路径), 那你会不会觉得很奇怪:"为什么我可以在任何地方执行/bin/ls这个指令呢? " 为什么我在任何目录下输入 ls 就一定可以显示出一些讯息而不会说找不到该 /bin/ls 指令呢? 这是因为环境变量 PATH 的帮助所致呀! 当我们在执行一个指令癿时候,举例来说&

HEAP[xxx.exe]:Invalid Address specified to RtlValidateHeap 错误的解决方法总结

一.情况 抽象出问题是这样的: class DLL_API1 A { func() { vector vec; B b; b.func(vec); return TRUE; } } 其中B是另一个导出类,定义如下 class DLL_API2 B { private: vector m_vec; public: func( vector &vec ) { vec = m_vec; } } 运行时发现,每次运行到A的return TRUE释放vector的时候,都会报错:user breakpoi

jar文件转换exe文件

起因:1.查看生产日志(巨大:大都是一两个GB),使用普通编辑器打开巨慢无比2.手写java工具类,使用main方法进行分割3.觉得工具类不人性化,就加入GUI4最后就想整合一个更加通用的工具,就想着把jar转换为exe文件 下载地址:https://download.csdn.net/download/ls0111/10797644 该文章只讲两点:1.导出可执行jar:2.可执行jar转换为exe 1.导出可执行jar 1.1 选择要导出的项目,右键导出 1.2 选择导出类型为jar文件 1