• Ошибка С2360, initialization of 'hInstanse' is skipped by 'case' label, почему?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    initialization of 'hInstanse' is skipped by 'case' label, почему?
    switch (uMsg)
    {
    ...
    case WM_CREATE:
    //получаем дескриптор приложения
    HINSTANCE hInstance = GetModuleHandle(0);
    ...
    break;
    
    case WM_MOUSEMOVE:
    //устанавливаем тот или иной курсор в зависимости от местонахождения мыши
    ...

    Потому что -- посмотри в этот код -- это фактически так: перейдя на метку WM_MOUSEMOVE код попадёт в область где hInstance определён, но минует его инициализацию. Компилятор туповат, чтобы понять, что hInstance дальше не используется. Простейший фикс -- обернуть код обработчиков в блоки:
    switch (uMsg)
    {
    ...
    case WM_CREATE:
    {
      //получаем дескриптор приложения
      HINSTANCE hInstance = GetModuleHandle(0);
      ...
    }
    break;
    
    case WM_MOUSEMOVE:
    {
      //устанавливаем тот или иной курсор в зависимости от местонахождения мыши
      ...
    }
    ...
    Ответ написан
    1 комментарий
  • Обьекты.клонирование, права доступа, поможете?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    const student = {
        name   : 'Sasha',
        age    : 46,
        surname: 'Belov',
      };
      const studentCS = { ...student };
      studentCS.speiality = 'Computer Science';
    
      const courses = {
        Math   : 10,
        English: 9,
        Sport  : 8,
      };
      const permissions = {
        canView : true,
        canEdit : false,
        canPrint: true,
      };
      Object.assign(studentCS, courses, permissions);
      console.log(studentCS);
    
      studentCS.average = function () {
        return (this.Math + this.Sport + this.English) / 3;
      };
      studentCS.checkPermission = function () {
        return [
          this.canView,
          this.canEdit,
          this.canPrint,
        ].filter(i => i).length;
      };
      console.log('Score: ' + studentCS.average());
      console.log('Number of enabled rights: ' + studentCS.checkPermission());
    Ответ написан
    1 комментарий