基于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中。
相关推荐
-
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
-
深入详解C编写Windows服务程序的五个步骤
Windows 服务被设计用于需要在后台运行的应用程序以及实现没有用户交互的任务.为了学习这种控制台应用程序的基础知识,C(不是C++)是最佳选择.本文将建立并实现一个简单的服务程序,其功能是查询系统中可用物理内存数量,然后将结果写入一个文本文件.最后,你可以用所学知识编写自己的 Windows 服务. 当初我写第一个NT 服务时,我到 MSDN 上找例子.在那里我找到了一篇 Nigel Thompson 写的文章:"Creating a Simple Win32 Service in C++&
-
使用winapi安装Windows服务示例程序
复制代码 代码如下: using system;using system.runtime.interopservices;namespace myserviceinstaller{ class serviceinstaller { #region private variables private string _servicepath; private string _servicename; private string _ser
-
Windows程序内部运行机制实例详解
本文以孙鑫老师VC++教程中的程序为基础,详细讲解了Windows程序内部运行机制,相信可以帮助大家更好的理解Windows程序运行原理及相应的VC++程序设计.具体内容如下: 创建一个Win32应用程序步骤: 1.编写WinMain函数; 2.创建窗口(步骤如下): a.设计(一个)窗口类(WNDCLASS) b.注册(该)窗口类. c.创建窗口. d.显示并更新窗口. 3.编写消息循环. 4.编写窗口过程函数. //WinMain.cpp #include <windows.h> #inc
-
使用WindowsAPI获取录音音频的方法
本文实例介绍了使用winmm.h进行音频流的获取的方法,具体步骤如下: 一.首先需要包含以下引用对象 #include <Windows.h> #include "mmsystem.h" #pragma comment(lib, "winmm.lib") 二.音频的获取需要调用7个函数 1. waveInGetNumDevs:返回系统中就绪的波形声音输入设备的数量 UINT waveInGetNumDevs(VOID); 2. waveInGetDevC
-
Windows中使用计划任务自动执行PHP程序实例
所谓任务计划就是由计算机自动调用用户事先设置好的应用程序,从而达到简化用户操作的目的.利用Windows 2000的任务计划程序(相当与*NIX下的cron程序,这里不再对其详述),我们可以安排任何脚本.程序或文档在最恰当的时候运行,从而满足自己的需要.下面以Windows 2000为例. 具体来说,我们若需利用任务计划程序自动运行则应执行如下步骤: 单击"开始"按钮,然后依次选择"程序"→"附件"→"系统工具"→"
-
使用WindowsAPI实现播放PCM音频的方法
本文介绍了使用WindowsAPI实现播放PCM音频的方法,同前面一篇使用WindowsAPI获取录音音频的方法原理具有相似之处,这里就不再详细介绍具体的函数与结构体的参数,相同的部分加以省略,只介绍主要的功能部分代码.如下所示: 1. waveOutGetNumDevs 2. waveOutGetDevCaps 3. waveOutOpen 回调函数: void CALLBACK PlayCallback(HWAVEOUT hwaveout, UINT uMsg, DWORD dwInstan
-
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
-
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
-
Windows API函数大全(完整)
1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接 WNetCloseEnum 结束一次枚举操作 WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 WNetDisconne
随机推荐
- Sql Server 2008完全卸载方法(其他版本类似)第1/2页
- AngularJS ng-repeat数组有重复值的解决方法
- Javascript 字符串字节长度计算函数代码与效率分析(for VS 正则)
- vbs/js脚本编程教学(1)
- VBS编程教程 (第4篇)
- iOS之Cocoapods安装教程(全面解析)
- python中map、any、all函数用法分析
- 如何解决Ajax请求结果的缓存问题说明
- PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解
- php利用新浪接口查询ip获取地理位置示例
- PHP去除字符串最后一个字符的三种方法实例
- C语言中基础小问题详细介绍
- 纯JavaScript实现获取onclick、onchange等事件的值
- Lua进阶教程之闭包函数、元表实例介绍
- 对MySQL日志操作的一些基本命令总结
- JQuery打造省市下拉框联动效果
- jQuery插件的写法分享
- Nginx网站根目录更改及导致403 forbidden的问题解决
- 为什么Google Adsense广告单元点击价格会下降??
- Web服务中的异常处理(4)
