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);
}