阅读 46

存储过程cursor,getcurrentdirectory函数

如果在开发过程中需要获取程序的当前执行目录,可以使用GetCurrentDirectory (和GetModuleFileName ) )函数。

GetCurrentDirectory只返回当前进程的当前目录,而不是进程镜像文件. exe ()所在的目录。 GetCurrentDirectory ) )应用于XP等系统,在WinCE中不可用。 GetModuleFileName ()适用于WinCE2.0或更高版本。

函数说明dwordwinapigetmodulefilename (hmodule hmodule,LPTSTR lpFileName,DWORD nSize );功能

此函数获取当前APP应用程序的执行目录和APP应用程序的文件名。

参数

hModule :获取文件名的模块名的句柄可以是使用LoadLiberary获取的句柄,null表示当前模块; lpFileName :存储获取的文件名的输出参数; nSize:lpFileName参数的长度。 dwordgetcurrentdirectory (dwordnbufferlength,//sizeofdirectorybufferlptstrlpbuffer//目录缓冲器);功能

找到当前进程的当前目录

参数

nBufferLength:lpBuffer缓冲区的长度lpBuffer :当前目录返回值

调用成功,返回了加载到lpBuffer中的字节数。

示例代码//以下代码主要是获取当前程序的(.exe )所在的目录) { CString path。 getmodulefilename(null,path.getbuffersetlength ) MAX_PATH,MAX_PATH; path.ReleaseBuffer (; intpos=path.reversefind((\); path=path.left(pos; //检索”\\xxx.exe '的上一个路径} :GetBuffer和ReleaseBuffer是一组必须联合使用的函数,与GetBufferSetLength相比

ReleaseBuffer释放多余的申请空间并返还给系统; 但是,使用时必须注意以下问题:如果要保存的字符串以ABC(0)结尾,则GetBuffer参数必须至少为3。 如果要保存的内容未以0结尾,例如,对于读取文件数据,如果GetBuffer参数大于文件长度,则ReleaseBuffer参数必须为文件长度。 如果GetBuffer参数是文件长度,则没有问题。 ReleaseBuffer参数可以是缺省的-1。

GetBufferSetLength比较容易理解,申请指定长度的空间。 即使中最终保存的字符串长度小于申请的空间长度,也不会释放多余的空间。


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐