我不是c ++开发人员,我需要将一些代码转换为vb.net
我发现了这个
_tcslwr_s
我甚至不知道它是一个类型还是一个函数(方法)。它用于:
_bstr_t _rbstProcessName
TCHAR* ptcProcessName = static_cast<TCHAR*>(_rbstProcessName);
_tcslwr_s(ptcProcessName, _rbstProcessName.length() + 1);
我知道_tcslwr_s
来自#define
tchar.h
,一个VS frameWork系统文件。
我会简要解释什么是#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)
此时我无法阅读任何内容..我从一开始就知道我的两个字符串发生了什么(_rbstProcessName
和ptcProcessName
)?
再次感谢您的帮助!
答案 0 :(得分:1)
根据此MSDN http://msdn.microsoft.com/en-us/library/y889wzfw%28v=vs.100%29.aspx _tcslwr_s
是一个宏,它映射到各种函数,用于将字符串转换为小写,具体取决于_UNICODE
的定义(对标准函数的Unicode支持)和{ {1}}(标准函数的多字节字符支持)宏。
VB.Net等价物将是_MBCS
字符串方法。
答案 1 :(得分:1)
_Check_return_wat_ _CRTIMP errno_t __cdecl _wcslwr_s(_Inout_z_cap_(_SizeInWords) wchar_t * _Str, _In_ size_t _SizeInWords);
声明了一个名为_wcslwr_s
的函数,该函数接受wchar_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
)转换为小写。