c ++使用字符串操作进行澄清

时间:2013-03-12 19:01:29

标签: c++ vb.net

我不是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)

此时我无法阅读任何内容..我从一开始就知道我的两个字符串发生了什么(_rbstProcessNameptcProcessName)?

再次感谢您的帮助!

2 个答案:

答案 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)转换为小写。

相关问题