C6276

تحذير C6276: cast بين مختلف دلالياً سلسلة أنواع: حرف * إلى wchar_t *. استخدم للسلسلة غير صحيح يمكن أن يؤدي إلى سلوك غير معرّف

وهذا تحذير يشير إلى فريق العمل من المحتمل أن يكون غير صحيح من سلسلة ‏‫ANSI ( char_t*) إلى سلسلة UNICODE ( wchar_t *). نظراً لوجود سلاسل UNICODE حجماً حرف 2 وحدات البايت، فقد العائد هذا تحويل السلاسل التي لم يتم إنهاؤها بشكل صحيح. قد يؤدي استخدام سلاسل مثل مكتبة wcs * دالات عمليات تجاوز احتياطي و مشكلات خرق الوصول.

مثال

يلي تعليمات برمجية ينشئ هذا التحذير:

#include <windows.h>
VOID f()
{
   WCHAR szBuffer[8];
   LPWSTR pSrc;

   pSrc = (LPWSTR)"a";
   wcscpy(szBuffer, pSrc); 
}

تصحيح تعليمات برمجية التالية هذا التحذير بإلحاق حرف L إلى لتمثيل حرف ASCII كحرف عريض:

#include <windows.h>

VOID f()
{
   WCHAR szBuffer[8];
   LPWSTR pSrc;

   pSrc = L"a";
   wcscpy(szBuffer, pSrc);
}

تستخدم التعليمة البرمجية التالية دالة معالجة سلسلة آمن، wcscpy_s، إلى تصحيح هذا التحذير:

#include <windows.h>

VOID f()
{
   WCHAR szBuffer[8];
   LPWSTR pSrc;
   pSrc = L"a";
   wcscpy_s(szBuffer,8,pSrc); 
}