c++ - 如何从 C++ 中的 PWSTR 中提取子字符串

标签 c++ windows string credential-providers

我目前正在使用 C++ 修改 Windows 7 的凭据提供程序。 Windows SDK 需要使用 PWSTR。

我遇到了一个问题,用户名有时作为 DOMAIN\username 传递,有时作为 domain.tld\username 传递,有时只是用户名。我想做的是从中提取用户名,只取斜杠后的子字符串。

我是 C++ 的新手,没有一个字符串函数似乎可以与 PWSTR 一起使用。我已经尝试了几次到 wchar_t* 的转换,但仍然没有任何效果。

如何实现?

TIA

最佳答案

你可以这样做:

PWSTR GetUserName(PWSTR pszUser)
{
   PWSTR pszLastSlash = wcsrchr(pszUser, L'\\');
   return pszLastSlash ? pszLastSlash + 1 : pszUser;
}

请注意,这不会进行单独的内存分配 - 您返回的是指向字符串中最后一个斜线之后开始的部分的指针。如果您要执行正确的“子字符串”操作,就像您可能会在更高级别的对象中看到的那样(而不是仅仅采用 len - i 从偏移量 i 开始),您会必须复制一份(或以某种方式跟踪您只考虑更小的长度)。

关于c++ - 如何从 C++ 中的 PWSTR 中提取子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11587546/

相关文章:

string - 在PLSQL中提取URL路径段字符串

java - 如何在java中将Unicode(utf-8)转换为十六进制字符串?

c++ - 功能/不可变数据结构在非垃圾收集上下文中是否仍然对并发有用?

c++ - 从另一个数组中将值写入另一个数组,排除不需要的值c++

windows - Windows Server 2008 的 FaxServer 替代品

python - 在静默安装 Python 时添加到 Path var - 可能的错误?

C++/STL 字符串 : How to mimic regex like function with wildcards?

c++ - 2种不同的种类,1个仿函数

c++ - 使用 <list> C++ 编译时出错

安装窗口服务时Python已停止工作(3.7)