- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用来自 http://msdn.microsoft.com/en-us/library/windows/desktop/aa380536(v=VS.85).aspx 的代码
AcquireCredentialsHandle 行表示第二个参数与 PSECURITY_STRING 不兼容。有人知道我在这里能做什么吗?
最佳答案
与大多数带有字符串参数的 Win32 API 函数一样,AcquireCredentialsHandle()
映射到 AcquireCredentialsHandleA()
或 AcquireCredentialsHandleW()
,具体取决于是否UNICODE
已定义,因此它分别需要 char*
或 wchar_t*
指针。另一方面,SECURITY_STRING
是一个以 UNICODE_STRING
为模型的结构。结构 - 两者都仅包含 UTF-16 编码的 Unicode 数据。
要将 SECURITY_STRING
值传递给 AcquireCredentialsHandleA()
,您需要先将 SECURITY_STRING::Buffer
成员的内容转换为 Ansi :
PSECURITY_STRING str;
...
int len = WideCharToMultiByte(0, 0, (LPWSTR)str->Buffer, str->Length, NULL, 0, NULL, NULL);
std::string tmp(len);
WideCharToMultiByte(0, 0, (LPWSTR)str->Buffer, str->Length, &tmp[0], len, NULL, NULL);
AcquireCredentialsHandle(..., tmp.c_str(), ...);
要将 SECURITY_STRING
值传递给 AcquireCredentialsHandleW()
,您需要按原样传递 SECURITY_STRING::Buffer
成员:
PSECURITY_STRING str;
...
AcquireCredentialsHandle(..., (LPWSTR)str->Buffer, ...);
无论哪种方式,您都不会传递指向 SECURITY_STRING
本身的指针。
关于c++ - 与 PSECURITY_STRING 不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8476892/
我正在尝试使用来自 http://msdn.microsoft.com/en-us/library/windows/desktop/aa380536(v=VS.85).aspx 的代码 Acquire
我是一名优秀的程序员,十分优秀!