基于Windows API分解路径问题的详解
在很多代码中看到,由于需要获取一个路径字符串中的文件名或者扩展名,很多程序员都用了c库中的字符串查找函数来获取。这样子写得代码很多,也麻烦。
其实在VC中,可以用更好的方法来获取。没有什么特别多说明,代码如下:
代码如下:
LPTSTR szfileName = new TCHAR[MAX_PATH];
GetModuleFileName(NULL, szfileName , MAX_PATH);
// 获取盘符、文件名、扩展名等信息
wchar_t drive[_MAX_DRIVE];
wchar_t dir[_MAX_DIR];
wchar_t fname[_MAX_FNAME];
wchar_t ext[_MAX_EXT];
errno_t err;
err = ::_wsplitpath_s(szFileName, drive, _MAX_DRIVE, dir, _MAX_DIR,
fname, _MAX_FNAME, ext, _MAX_EXT);
// 只获取路径
PathRemoveFileSpec(szFileName);
注意:_wsplitpath_s函数不会改变szFileName中的内容,但是PathRemoveFileSpec却会改变。
头文件:_wsplitpath_s() 在stdlib.h中。
PathRemoveFileSpec()函数在shlwapi.h中。
相关推荐
-
使用WindowsAPI获取录音音频的方法
本文实例介绍了使用winmm.h进行音频流的获取的方法,具体步骤如下: 一.首先需要包含以下引用对象 #include <Windows.h> #include "mmsystem.h" #pragma comment(lib, "winmm.lib") 二.音频的获取需要调用7个函数 1. waveInGetNumDevs:返回系统中就绪的波形声音输入设备的数量 UINT waveInGetNumDevs(VOID); 2. waveInGetDevC
-
使用WindowsAPI实现播放PCM音频的方法
本文介绍了使用WindowsAPI实现播放PCM音频的方法,同前面一篇使用WindowsAPI获取录音音频的方法原理具有相似之处,这里就不再详细介绍具体的函数与结构体的参数,相同的部分加以省略,只介绍主要的功能部分代码.如下所示: 1. waveOutGetNumDevs 2. waveOutGetDevCaps 3. waveOutOpen 回调函数: void CALLBACK PlayCallback(HWAVEOUT hwaveout, UINT uMsg, DWORD dwInstan
-
使用winapi安装Windows服务示例程序
复制代码 代码如下: using system;using system.runtime.interopservices;namespace myserviceinstaller{ class serviceinstaller { #region private variables private string _servicepath; private string _servicename; private string _ser
-
C#中调用Windows API的技术要点说明
在.Net Framework SDK文档中,关于调用Windows API的指示比较零散,并且其中稍全面一点的是针对Visual Basic .net讲述的.本文将C#中调用API的要点汇集如下,希望给未在C#中使用过API的朋友一点帮助.另外如果安装了Visual Studio .net的话,在C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\Samples\Technologies\Interop\PlatformInvo
-
Windows程序内部运行机制实例详解
本文以孙鑫老师VC++教程中的程序为基础,详细讲解了Windows程序内部运行机制,相信可以帮助大家更好的理解Windows程序运行原理及相应的VC++程序设计.具体内容如下: 创建一个Win32应用程序步骤: 1.编写WinMain函数; 2.创建窗口(步骤如下): a.设计(一个)窗口类(WNDCLASS) b.注册(该)窗口类. c.创建窗口. d.显示并更新窗口. 3.编写消息循环. 4.编写窗口过程函数. //WinMain.cpp #include <windows.h> #inc
-
深入详解C编写Windows服务程序的五个步骤
Windows 服务被设计用于需要在后台运行的应用程序以及实现没有用户交互的任务.为了学习这种控制台应用程序的基础知识,C(不是C++)是最佳选择.本文将建立并实现一个简单的服务程序,其功能是查询系统中可用物理内存数量,然后将结果写入一个文本文件.最后,你可以用所学知识编写自己的 Windows 服务. 当初我写第一个NT 服务时,我到 MSDN 上找例子.在那里我找到了一篇 Nigel Thompson 写的文章:"Creating a Simple Win32 Service in C++&
-
Windows中使用计划任务自动执行PHP程序实例
所谓任务计划就是由计算机自动调用用户事先设置好的应用程序,从而达到简化用户操作的目的.利用Windows 2000的任务计划程序(相当与*NIX下的cron程序,这里不再对其详述),我们可以安排任何脚本.程序或文档在最恰当的时候运行,从而满足自己的需要.下面以Windows 2000为例. 具体来说,我们若需利用任务计划程序自动运行则应执行如下步骤: 单击"开始"按钮,然后依次选择"程序"→"附件"→"系统工具"→"
-
Windows API函数大全(完整)
1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接 WNetCloseEnum 结束一次枚举操作 WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 WNetDisconne
-
WINDOWS 2000下使用ISAPI方式安装PHP
使用ISAPI方式安装PHP. 下载连接:http://cn2.php.net/get/php-4.4.0-Win32.zip/from/cn.php.net/mirror ISAPI方式是WIN系统IIS下最有效率的PHP执行方式.强烈建议. 解压好PHP后,首先找到php.ini-dist 把-dist 去掉,就成了文本方式显示. 打开PHP.INI 做略微修改.使用查找方式找TMP 找到./TMP着个路劲后,把路劲改成C:/TMP 然后在C盘新建TMP文件夹 全做好以后,拷贝 P
-
python调用windows api锁定计算机示例
调用Windows API锁定计算机 本来想用Python32直接调用,可是没有发现Python32有Windows API LockWorkStation(); 因此,就直接调用Windows DLL了 复制代码 代码如下: #!/usr/bin/env python#-*- coding:cp936 -*- "调用WindowAPI锁定计算机" import ctypes; dll = ctypes.WinDLL('user32.dll'); dll.LockWorkStation
随机推荐
- Angular的$http的ajax的请求操作(推荐)
- javascript 调用其他页面的js函数或变量的脚本
- Javascript笔记一 js以及json基础使用说明
- 详解Android系统中的root权限获得原理
- asp.net中url地址传送中文参数时的两种解决方案
- PHP 开发环境配置(测试开发环境)
- 让你同时上传 1000 个文件 (二)
- mysqldump造成Buffer Pool污染的研究
- Jquery使用val方法读写value值
- React学习之事件绑定的几种方法对比
- 土人系列AS入门教程 -- 对象篇
- Java中==符号与equals()的使用详解(测试两个变量是否相等)
- 使用迭代器模式来进行Java的设计模式编程
- JavaScript 序列化对象实现代码
- 使用Spring Cloud Feign上传文件的示例
- Vue项目引进ElementUI组件的方法
- 详释JavaScript执行环境与执行栈
- JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
- laravel orm 关联条件查询代码
- vue 点击展开显示更多(点击收起部分隐藏)