【发布时间】:2011-06-30 16:47:16
【问题描述】:
我正在将 this code 从 C++ 转换为 Delphi,但我没有得到以下代码部分。谁能解释一下以下代码的含义; szBuff 缓冲区发生了什么?
我很确定它是这种格式(替换),但我什至不知道结果是什么,而且我找不到任何关于所用函数的合理文档(也许我只是一个蹩脚:)
谁能帮我把这段代码翻译成 Delphi(或指导我找到适当的文档)?
我不喜欢你自己如何转换类型的问题,所以我至少在问题标题中提到了函数名称,以便将来其他人可以搜索它。
function TSecInfo.BuildSecurityAttributes(var SecAttrs: TSecurityAttributes): boolean;
var
pszSidUser: PChar;
szBuff: array [0..1024] of Char;
begin
// pszSidUser at this time contains user SID like this
// S-1-5-21-1454471165-1004336348-1606980848-5555
// TCHAR szBuff[1024]; // I'm not sure with array [0..1024] of Char;
_tcscpy(szBuff, _T("D:"));
_tcscat(szBuff, _T("(A;;GA;;;"));
_tcscat(szBuff, pszSidUser);
_tcscat(szBuff, _T(")"));
_tcscat(szBuff, _T("(A;;GWGR;;;AN)"));
_tcscat(szBuff, _T("(A;;GWGR;;;WD)"));
...
_tcscat(szBuff, _T("S:(ML;;NW;;;S-1-16-0)"));
end;
对于那些对链接中的整个代码感兴趣的人,我可以告诉它应该是一个技巧,如何访问网络管道以在上面的 Windows Vista 上以匿名用户身份进行编写。全文请关注this link。
感谢您的宝贵时间
问候
【问题讨论】:
-
你确定是c++吗?不像
-
@VJo - 不;一定不;但源代码文件具有 *.cpp 扩展名和库链接,如
#include <windows.h> -
@VJo:链接后面的原始代码是C++。
-
szBuff[1024]表示有 1024 个元素。array [0..1024]是 1025 个元素。你需要array[0..1024 - 1],有时写成array[0..1023]。 -
如果我没看错的话,示例代码还使用了“Shlemiel the Painter”的字符串连接 (joelonsoftware.com/articles/fog0000000319.html)
标签: c++ delphi string code-conversion