GetModuleFileName

GetModuleFileName

获取当前进程已加载模块的文件的完整路径,该模块必须由当前进程加载。如果想要获取另一个已加载模块的文件路径,可以使用GetModuleFileNameEx函数。
声明GetModuleFileName(VB)
Declare Function GetModuleFileName Lib “kernel32”
Alias “GetModuleFileNameA” (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
(C++)
DWORD WINAPI GetModuleFileName( In_opt HMODULE hModule, Out LPTSTR lpFilename, In DWORD nSize);
返回值:Long,如执行成功,返回复制到lpFileName的实际字符数量;零表示失败。使用GetLastError可以打印错误信息。
参数:hModule Long一个模块的句柄。可以是一个DLL模块,或者是一个应用程序的实例句柄。如果该参数为NULL,该函数返回该应用程序全路径。
lpFileName String指定一个字串缓冲区,要在其中容纳文件的用NULL字符中止的路径名,hModule模块就是从这个文件装载进来的
nSize Long装载到缓冲区lpFileName的最大字符数量
注解:在Windows 95下,函数会核查应用程序的内部版本号是否为4.0或更大的一个数字。如果是,就返回一个长文件名,否则返回短文件名
原型及各参数解释:
DWORD GetModuleFileName( HMODULE hModule, LPTSTR lpFilename, DWORD nSize);
获得hModule所指的文件的名字,
hModule在LoadLibrary之类的函数会返回,是一个句柄,用来标记这个文件资源。
lpFilename是你存放返回的名字的内存块的指针,是一个输出参数,nSize是这个内存块的大小,用于防止溢出。
返回值是用于指示是否发生错误的。
VC函数:
函数原型
DWORDGetModuleFileName(HMODULE hModule,LPTSTR lpFilename,DWORD nSize);
函数参数:
HMODULE hModule 装载一个程序实例的句柄。如果该参数为NULL,该函数返回该当前应用程序全路径。LPTSTR lpFileName 是你存放返回的名字的内存块的指针,是一个输出参数
DWORD nSize,装载到缓冲区lpFileName的最大值
函数返回值:
如果返回为成功,将在lpFileName的缓冲区当中返回相应模块的路径,如果所设的nSize过小,那么返回仅按所设置缓冲区大小返回相应字符串内容。
如果函数失败,返回值将为0,利用GetLastError可获得异常代码。
头文件
windows.h
实例源代码
#include <windows.h>
#include <stdio.h>
BOOL CreateSampleService(){
TCHAR szPath[MAX_PATH];
if( !GetModuleFileName( NULL, szPath, MAX_PATH ) )
{ printf(“GetModuleFileName failed (%d)\n”, GetLastError());
return FALSE;
}
return TRUE;}
/如果想获得某个正在运行的EXE或者DLL的全路径可以这样写代码GetModuleFileNameEx(hProcess,hInst,lpFile,MAX_PATH);//注意下缓冲区就行了。/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/466462.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jQuery load() 中文乱码

1、使用editplus创建了demo.txt (ANSI保存的)&#xff0c; $("#div1").load("demo.txt");//div显示中文乱码--->html5中定义<meta charset"utf-8"/>,编码解码不一致造成中文乱码&#xff0c;将文本文件demo.txt另存为utf-8格式&#xf…

内核链表list.h文件剖析

内核链表list.h文件剖析 一、内核链表的结构【双向循环链表】 内核链表的好主要体现为两点&#xff0c;1是可扩展性&#xff0c;2是封装。可以将内核链表复用到用户态编程中&#xff0c;以后在用户态下编程就不需要写一些关于链表的代码了&#xff0c;直接将内核中list.h中的代…

CAN总线很难吗?CAN总线看不懂是不可能的!

CAN&#xff08;Controller Area Network&#xff09;即控制器局域网&#xff0c;是一种能够实现分布式实时控制的串行通信网络。想到CAN就要想到德国的Bosch公司&#xff0c;因为CAN就是这个公司开发的&#xff08;和Intel&#xff09;CAN有很多优秀的特点&#xff0c;使得它能…

GetDlgItem

GetDlgItemText() GetDlgItemText是C中的函数&#xff0c;调用这个函数以获得与对话框中的控件相关的标题或文本。GetDlgItemText成员函数将文本拷贝到lpStr指向的位置并返回拷贝的字节的数目。 函数说明 CWnd类的成员函数。 函数原型 int GetDlgItemText( HWND hDlg , int n…

开放课程管理系统(Moodle)的介绍(转)

一、虚拟学习环境 关于虚拟学习环境&#xff0c;很难用一个简单的定义来描述。可以说是&#xff0c;支持和管理教与学的各项活动的基于网络的环境。也可以认为是学习管理系统的组成部分。当应用于远程教育时&#xff0c;通常认为它包括“任何用于创造一个统一的、类似于面对面的…

C语言必须写main函数?最简单的 Hello world 你其实一点都不懂!

我们在刚写程序的时候&#xff0c;第一个都是 hello world&#xff0c;而在这里&#xff0c;完整的代码就是&#xff1a;我们打眼一看&#xff0c;其实很简单&#xff0c;就是引入头文件&#xff0c;写一个主函数&#xff0c;然后输出一句话&#xff0c;但是当我们编译出来ELF的…

内核链表使用举例

内核链表使用举例#ifndef _EVENT_LIST_H_ #define _EVENT_LIST_H_#include "list.h" // 内核链表头文件typedef int (*event_cb)(void *data);typedef struct {void *params;event_cb handle;struct list_head list; } event_elem_t;int EventListAdd(event_elem_t *…

CObList

CObList CObList类支持非唯一的CObject指针&#xff0c;并可顺次访问或通过指针值访问有序列表。CObList列表的行为类似于双向链接列表。CObList是非常有用的集合类族的代表&#xff0c;具有诊断转储的特性并且能够包含混合的指针。 POSITION类型的变量为列表的键。使用POSITIO…

源码包安装

一、源码包和RPM包的区别 1、区别 安装之前的区别&#xff1a;概念上的区别 安装之后的区别&#xff1a;安装位置不同 2、RPM包安装位置 是安装在默认位置中 注&#xff1a;安装位置是写RPM包的作者决定的 注&#xff1a;RPM包支持指定安装位置&#xff0c;但是不建议指定位置安…

年轻10岁简单又易行的妙方

爱美的女性&#xff0c;谁不想使自己更年轻&#xff0c;并能留住一份健康的美?我们介绍的方法非常容易实现&#xff0c;只要你能够坚持。想要年轻10岁?没有想象中那么困难,但是也要持之以恒哦!这里推荐的都是价廉易置的)鉴借&#xff0c;愿能给大家有参考之用&#xff1a;1.一…

计算最后一个单词的字符串长度

题目 http://www.nowcoder.com/questionTerminal/8c949ea5f36f422594b306a2300315da 看了大家的答案&#xff0c;觉得还是稍微复杂。给一个比骄简单的解题思路。 只要是空格&#xff0c;就把计数置0&#xff0c;要不然就一直自增。 #include "stdio.h" #include …

strstrsubstr、AfxGetApp

1.strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是&#xff0c;则该函数返回str2在str1中首次出现的地址&#xff1b;否则&#xff0c;返回NULL。 2.substr是C语言函数&#xff0c;主要功能是复制子字符串&#xff0c;要求从指定位置开始&#xff0c;并具有…

Linux下修改SSH登录端口

Linux下修改SSH登录端口LINUX 的默认SSH 端口是 22。为了防止别人暴力破解&#xff0c;建议修改SSH 访问端口&#xff1a;vim /etc/ssh/sshd_config 找到Port 22 这一行&#xff0c;这是是默认端口22&#xff0c;现在改成Port 1234这个数字自己定&#xff0c;但是不要超过65536…

五岁的时候,你在干什么?

文章写在2021.2.7号——想不到啊想不到&#xff0c;这么快你就五岁了。今天是楠哥的生日&#xff0c;在五年前的今天&#xff0c;小伙子在深圳宝安妇幼出生&#xff0c;刚出生的时候&#xff0c;样子很丑&#xff0c;第一次见面&#xff0c;我心情很紧张&#xff0c;不怎么敢靠…

GetLocalTime

GetLocalTime是一个Windows API 函数&#xff0c;用来获取当地的当前系统日期和时间。 函数原型: VOID GetLocalTime( LPSYSTEMTIME lpSystemTime //address of system times structure ); 参数说明: lpSystemTime: 指向一个用户自定义包含日期和时间信息的类型为 SYSTEMTIME 的…

Java集合(7):散列与散列码

散列的价值在于速度。我们使用数组来保存键的信息&#xff0c;这个信息并不是键本身&#xff0c;而是通过键对象生成一个数字(散列码)&#xff0c;作为数组下标。由于数组的容量是固定的&#xff0c;而散列容器的大小是可变的&#xff0c;所以不同的键可以产生相同的数组下标(散…

301转向代码合集

教育资源网将SEO工作中所需要的301转向代码进行了整理&#xff0c;收藏并分享&#xff0c;以备查阅。 1、IIS下301设置 Internet信息服务管理器 -> 虚拟目录 -> 重定向到URL&#xff0c;输入需要转向的目标URL&#xff0c;并选择“资源的永久重定向”。 2、ASP下的301转向…

TQ210——核心板和底板

TQ210——核心板和底板 1、TQ210简介【TQ210_COREB核心板 TQ210_BOARD_V4底板】 三星Cortex-A8 S5PV210芯片&#xff0c;运行最大频率1GHZ&#xff0c;处理器内部为64/32位总线结构&#xff0c;32/32KB一级缓存&#xff0c;512KB二级缓存。自带3D加速引擎&#xff08;SGX540&a…

“华为天才少年”自制百大Up奖杯,网友:技术难度不高侮辱性极强

来源&#xff1a;雷锋网B站硬核黑科技Up主、AI算法工程师稚晖君&#xff0c;停更了好一阵子后&#xff0c;这位自称野生钢铁侠的超硬核Up主终于又发布了新作品。之所以停更这么久&#xff0c;Up主解释说&#xff0c;不是因为在野外被捕了&#xff0c;纯粹是因为工作太忙了。熟悉…

CListBox的函数

CListBox::GetCurSel 函数原型&#xff1a; int GetCursel( ) const; 返回值&#xff1a; 从当前选中的项的索引为零开始。如果没有项目被当前选定或如果列表框是一个多次选择列表框&#xff0c;则返回LB_ERR。 说明&#xff1a; 从当前选中的项的索引为零开始,如果任何的,在…