Win Api (LONG в C++ (long или int))

225
16 марта 2017, 23:01

Нам дали изучать win api (хотя хз зачем он вообще в текущих реалиях нужен)... Сабж, функция возвращает структуру с типом LONG (в полях, winapi), нужно его привести к обычному типу long, а лучше вообще int. Как это сделать не знаю, в гугле ничего внятного не нашел, а спросить не у кого. Прошу помочь.

Answer 1

Вообще-то, обычно в Windows имя LONG определяется как

typedef long LONG;

То есть имя LONG определяется как алиас для некоторого стандартного арифметического типа.

Так что вы можете присваивать значение объекта типа LONG объекту типа long.

А также можете присваивать значение объекта типа LONG объекту типа int (хотя такое присвоение может говорить о том, что, возможно, вы что-то делаете неправильно) при условии, что нет потери значимости числа. Компилятор может выдать предупреждение при таком присваивании. Чтобы его избежать, вам следует использовать явное приведение типов. Например,

LONG x = 10;
int y;
y = ( int )x;
// или
y = static_cast<int>( x );
READ ALSO
Количество разных чисел в массиве c++

Количество разных чисел в массиве c++

Есть целочисленный массив, как найти количество разных чисел в нем? Собственно, как функцию сравнения (проверку) правильно задать, вот эту:...

280
Отличия в оптимизации C и C++

Отличия в оптимизации C и C++

Какой код компилируется Си и С++, корректно работает, но при этом может отличается по быстродействию вследствие различий стандартов C и C++?

229
Передача объекта в функцию по значению

Передача объекта в функцию по значению

Можно ли передать объект в функцию по значению, а не по ссылке? Например, если передаем массив в рекурсивную функцию, и на каждом вызове из этого...

263
Как передать компонент через рутер в ReactJS?

Как передать компонент через рутер в ReactJS?

В приложении есть зарегестрирвоанные и незарегестрированные пользователиСоответственно для тех и для других будут разные хедеры на сайте(хедеры...

319