您的位置:首页 > Web前端

StrSafe.h 使用安全字符串操作函数

2015-06-10 17:49 330 查看
    const TCHAR P[] = _T("测试一下");

    int nLen = sizeof(P)/sizeof(TCHAR);  //5

    int nLen1 = sizeof(P); // 10;
    TCHAR szData[MAX_PATH] = { 0 };

   TCHAR szData1[MAX_PATH] = { 0 };

    int nLen2 = lstrlen(P); //4

   //拷贝字节数

    if (S_OK != StringCbCopy(szData,sizeof(P), P))

    {

        OutputDebugString(_T("copy failed\n"));
    }

   //拷贝字符数

    if (S_OK != StringCchCopy(szData1, _countof(P), P))

    {

        OutputDebugString(_T("copy failed\n"));

    }

//////////////////////////////////////////////////////////////

_tcscpy_s失败时,debug弹出异常对话框。

可以自定义错误处理

1、。在应用程序开头的地方调用_CrtSetReportMode(_CRT_ASSERT, 0);,禁止可能由C运行时触发的所有Debug Assertion Failed对话框。

2、自定义处理函数

void  invalid_parameter_handler(

    wchar_t const* exception,

    wchar_t const* function,

    wchar_t const* file,

    unsigned int line,

    uintptr_t

    )

{

    OutputDebugString(_T("error"));

}

void TestInvalidParameter()

 {

    _set_invalid_parameter_handler(invalid_parameter_handler);

     test();

}

void test()

{

    TCHAR szBefore[5] = {

        TEXT('B'), TEXT('B'), TEXT('B'), TEXT('B'), '\0'

    };

    TCHAR szBuffer[10] = {

        TEXT('-'), TEXT('-'), TEXT('-'), TEXT('-'), TEXT('-'),

        TEXT('-'), TEXT('-'), TEXT('-'), TEXT('-'), '\0'

    };

    TCHAR szAfter[5] = {

        TEXT('A'), TEXT('A'), TEXT('A'), TEXT('A'), '\0'

    };

    errno_t result = _tcscpy_s(szBuffer, _countof(szBuffer),TEXT("0123456789"));

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: