1

我不是 C++ 开发人员,我需要将一些代码转换为 vb.net

我找到了这个

_tcslwr_s

我什至不知道它是类型还是函数(方法)。它用于:

    _bstr_t _rbstProcessName
    TCHAR* ptcProcessName = static_cast<TCHAR*>(_rbstProcessName);
    _tcslwr_s(ptcProcessName, _rbstProcessName.length() + 1);

我知道这_tcslwr_s是来自VS frameWork 系统文件的#definein 。tchar.h

我想对什么是 a 做一个简短的解释#define,在这种情况下,什么是_tcslwr_s

提前非常感谢!


编辑

现在在评论的帮助下,我知道什么是定义。搜索我发现_tcslwr_s定义的代码_wcslwr_s。仅有的两行在其中,string.h并且是:

_Check_return_wat_ _CRTIMP errno_t __cdecl _wcslwr_s(_Inout_z_cap_(_SizeInWords) wchar_t * _Str, _In_ size_t _SizeInWords);
__DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_0(errno_t, _wcslwr_s, _Deref_prepost_z_ wchar_t, _String)

在这一点上,我什么也看不懂。我应该怎么做才能从一开始就知道我的两个字符串(_rbstProcessNameptcProcessName)发生了什么?

再一次感谢你的帮助!

4

2 回答 2

1

根据这个 MSDN http://msdn.microsoft.com/en-us/library/y889wzfw%28v=vs.100%29.aspx _tcslwr_s是一个宏,它映射到根据定义将字符串转换为小写的各种函数_UNICODE(标准函数的 Unicode 支持)和_MBCS(标准函数的多字节字符支持)宏。VB.Net 等价物是.ToLower()字符串方法。

于 2013-03-12T19:42:44.340 回答
1

_Check_return_wat_ _CRTIMP errno_t __cdecl _wcslwr_s(_Inout_z_cap_(_SizeInWords) wchar_t * _Str, _In_ size_t _SizeInWords);正在声明一个调用的函数,该函数_wcslwr_s接受 awchar_t *size_t返回一个errno_t. 以下划线开头的所有内容(_Str和除外_SizeInWords)都是函数的属性。例如,__cdecl表示应使用 C 调用约定(参见http://msdn.microsoft.com/en-us/library/zkwh89ks(v=vs.80).aspx),并_In_表示将参数传递给功能。

简单来说,这个函数接受一个字符串和字符串的大小并返回一个错误代码。基于http://msdn.microsoft.com/en-us/library/y889wzfw(v=vs.80).aspx,此函数似乎将提供的字符串 ( _Str) 转换为小写。

于 2013-03-12T19:43:46.320 回答