`
izuoyan
  • 浏览: 9286631 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

[Windows编程] SHLWAPI 和 CRT (C Runtime) 字符串处理函数的区别

阅读更多

CRT(C Runtime) 的字符串函数就是我们常见的 strcmp, strchr, strstr 等等

Windows 系统DLL shlwapi.dll<!----> 也提供了类似的字符串处理函数,只是大小写有所不同: StrCmp, StrChr, StrStr等。

两者的区别在于:

1)CRT 的字符串函数不支持 Unicode 字符串 (wchar_t)

2) CRT 的字符串函数不考虑系统的语言环境(locale), 而SHLWAPI 得函数则会考虑语言环境。举一个strrchr/StrRChr例子:

英文Windows系统上:

StrRChrA("/Test/縺・a.txt", NULL, '/') 返回 "/a.txt"

strrchr("/Test/縺・a.txt", '/') 返回 "/a.xls"


日文Windows系统上:

StrRChrA("/Test/縺・a.txt", NULL, '/') 返回 "/縺・a.txt"

strrchr("/Test/縺・a.txt", '/') 返回 "/a.txt"


日文字符的第二个字节是0x2f, 正好是 '/'(0x2f) , 所以strchr返回a.txt的前一个字符。在英文系统上,StrRChrA 认为所有字符都是ASCII,所以返回的结果和strrchr一样。 而到了日文系统上,StrRChrA 能够识别日文字符,于是返回正确结果。

分享到:
评论

相关推荐

    shlwapi32位.h和.lib

    在Windows编程领域,Shlwapi.dll是一个至关重要的动态链接库,它包含了大量用于处理字符串的实用函数,大大简化了开发者的工作流程。本篇文章将围绕"shlwapi32位.h"和"ShLwApi.Lib"这两个关键组件,深入探讨其功能、...

    C中数字与字符串转换方法.doc

    在C编程语言中,数字与字符串之间的转换是常见的操作,特别是在处理用户输入或者输出格式化数据时。本文将详细介绍C中数字与字符串转换的各种方法。 ### 一、字符串转数字 1. **CRT函数**: - `atoi()`, `_atoi_l...

    无法启动此程序因为计算机中丢失 api-ms-win-crt-runtime-l1-1-0.dll

    API-MS-WIN-CRT-RUNTIME-L1-1-0.dll是Windows API的一个部分,用于提供C运行时库功能,包括内存分配、字符串处理等基础操作。 API-MS-WIN系列的动态链接库(DLL)文件是Windows操作系统中的一部分,它们为应用程序...

    精彩编程与编程技巧-将文件大小变成相应的字符串...

    在`Form_Load`事件中,程序首先调用`OpenFile`函数打开文件,然后通过`GetFileSize`获取文件大小,最后调用`FormatKB`函数将文件大小转换为字符串并显示给用户。 ```vb Dim FileHandle As Long Dim strFileName As ...

    api-ms-win-downlevel-shlwapi-l1-1-0.zip

    总结来说,"api-ms-win-downlevel-shlwapi-l1-1-0.zip"是一个包含低级别实用函数的Windows库文件,尤其在处理图像和路径相关任务时十分有用。对于那些需要在旧版Windows系统上运行的应用程序开发者,这个库文件是不...

    VC++字符对应表

    在VC++编程环境中,进行不同进制之间的转换以及处理字符与数字之间的对应关系是常见的任务。本文将详细讲解VC++中涉及的转换方法,包括字符串转数字、数字转字符串以及通用的相互转换方法。 ### 字符串转数字 ####...

    将文件大小变成相应的字符串

    ### 将文件大小变成相应的字符串 #### 知识点概览 本文主要介绍了一段用于将文件大小转换为易于理解的字符串格式(如“1.41KB”或“1.32MB”)的Visual Basic (VB) 源代码。此功能在多种场景下都非常实用,例如在...

    api-ms-win-downlevel-shlwapi-l1-1-0.dll

    "shlwapi"部分指的是“Shell Lightweight Utility API”,这是Windows Shell服务的一部分,提供了一系列用于文件操作、字符串处理、URL解析等任务的函数。最后,“l1-1-0”是版本号,表示该DLL的具体实现版本。 `...

    api-ms-win-downlevel-shlwapi-l1-1-0

    "shlwapi"则指的是Shlwapi库,这是一个包含了多种实用函数的库,比如字符串处理、路径处理、URL解析等。 描述中提到的"包含win7以及win8可用的api-ms-win-downlevel-shlwapi-l1-1-0",意味着这个压缩包提供的DLL...

    C语言头文件 SHLWAPI

    C语言头文件 SHLWAPIC语言头文件 SHLWAPIC语言头文件 SHLWAPIC语言头文件 SHLWAPIC语言头文件 SHLWAPIC语言头文件 SHLWAPIC语言头文件 SHLWAPIC语言头文件 SHLWAPIC语言头文件 SHLWAPIC语言头文件 SHLWAPIC语言...

    精彩编程与编程技巧-如何压缩较长的全路径文件名中的路径 (Path) 字串长度?...

    在某些编程语言(如Visual Basic)中,提供了内置函数用于处理路径字符串。例如,可以使用`Mid$`、`Left$`等字符串操作函数来截取路径的一部分。这种方式虽然灵活,但在处理过长的路径时可能会出现意料之外的结果,...

    C++常用头文件说明

    这个头文件包含了大量与Windows Shell相关的函数和宏定义,使得开发者能够轻松地调用Shell的功能,如文件操作、桌面管理等。 - **常见用途**: - 文件对话框:打开或保存文件对话框。 - 拖放操作:支持拖放操作的...

    api-ms-win-downlevel-shlwapi-l1-1-0.dll 下载

    api-ms-win-downlevel-shlwapi-l1-1-0.dll文件包含了Windows Shell Lightweight Utility Library的一些功能,如字符串处理、文件操作、网络连接等。这些功能对于许多应用程序的正常运行是必不可少的。例如,当用户...

    C语言超炫代码

    - `LRESULT OnDeviceChange(HWND hwnd, WPARAM wParam, LPARAM lParam)`:这是一个设备事件处理函数,用于处理设备插入和移除等事件。 综上所述,这段代码涉及到了C++编程中的多个重要方面,从基本的文件操作到复杂...

    Wrox - Visual C++ Windows Shell Programming Source Code.zip

    在C++中使用Windows API,需要将API函数声明为extern "C"以避免名字修饰,同时理解如何处理Windows消息机制,如WndProc函数,以及如何创建窗口类和实例。 3. **MFC库的应用** MFC是微软提供的C++类库,它封装了...

Global site tag (gtag.js) - Google Analytics