Что такое WINVER?

Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.

Например, ниже - класс ученика, который будет использовать его в нашем коде.

public class Student {

    private int id;

    public int getId() {
        return this.id;
    }

    public setId(int newId) {
        this.id = newId;
    }
}

Приведенный ниже код дает вам исключение с нулевым указателем.

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}

Поскольку вы используете Obj_Student, но вы забыли инициализировать его, как в правильном коде, показанном ниже:

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student = new Student();
            obj_Student.setId(12);
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}
26
задан Nicolas Raoul 8 March 2016 в 05:42
поделиться

4 ответа

WINVER определяет минимальный SDK платформы, необходимый для сборки вашего приложения, который, в свою очередь, определяет во время компиляции, какие подпрограммы найдены заголовками.

Вы можете использовать это для проверки, во время компиляции, что ваше приложение будет работать, например, в Windows 2000 (0x0500) или в Windows XP (0x0501).

Страница MSDN на Изменение WINVER и _WIN32_WINNT более подробно описывает это.

23
ответ дан Ville-Valtteri 8 March 2016 в 05:42
поделиться

WINVER определяет минимальную систему Windows, на которой может работать программа. Есть более подробное объяснение на MSDN . #define WINVER 0x0501 означает, что для запуска программы требуется Windows XP или Server 2003, и поэтому она может использовать функциональность Windows вплоть до этого выпуска.

4
ответ дан David Thornley 8 March 2016 в 05:42
поделиться

Определив макрос WINVER, вы отобразите набор функций, относящихся к определенной версии Windows. Например, если вы определите его как #define WINVER 0x0502, вы не сможете использовать TaskDialog , который доступен только в Windows Vista. Более подробно вы можете прочитать статью Использование заголовков Windows в MSDN.

3
ответ дан Nicolas Raoul 8 March 2016 в 05:42
поделиться
  • 1
    Я ценю справку, но таблица, которую я использую, очень конкретна, и datagrid плагин как flexigrid было бы чрезвычайно трудно использовать. –  27 May 2011 в 18:35
  • 2
    Я ценю справку, но таблица, которую я использую, очень конкретна, и datagrid плагин как flexigrid было бы чрезвычайно трудно использовать. –  27 May 2011 в 18:35
  • 3
    Я ценю справку, но таблица, которую я использую, очень конкретна, и datagrid плагин как flexigrid было бы чрезвычайно трудно использовать. –  27 May 2011 в 18:35
  • 4
    Я ценю справку, но таблица, которую я использую, очень конкретна, и datagrid плагин как flexigrid было бы чрезвычайно трудно использовать. –  27 May 2011 в 18:35
  • 5
    Я ценю справку, но таблица, которую я использую, очень конкретна, и datagrid плагин как flexigrid было бы чрезвычайно трудно использовать. –  27 May 2011 в 18:35

WINVER означает версию Windows. Короче говоря, если вы разрабатываете для определенной версии Windows, доступны некоторые API, которые не были доступны в предыдущих версиях.

3
ответ дан Graeme Perrow 8 March 2016 в 05:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: