2016-11-14 9 views
1

Как преобразовать целое число в LARGE_INTEGER?Как преобразовать целое число в LARGE_INTEGER

Например, когда я хочу, чтобы вызвать таймер немедленно:

LARGE_INTEGER zero; 
zero.QuadPart = 0; 
KeSetTimer(pTimer, zero, pDpc); 

Есть ли способ преобразовать 0 до LARGE_INTEGER? Так что я мог бы сделать это вместо того, чтобы:

KeSetTimer(pTimer, (SomeType)0, pDpc); 

Я пробовал:

KeSetTimer(pTimer, (LARGE_INTEGER)0, pDpc); 

Но это не работает. У меня есть Googled, но я не мог найти никакой помощи.

+2

Учитывая, что вы на Windows, и, вероятно, использует Visual Studio это может не работать, но в противном случае вы должны прочитать о [составные литералы] (http://en.cppreference.com/w/c/language/compound_literal). –

ответ

4

LARGE_INTEGER является struct. Невозможно передать значение в тип структуры.

Вам необходимо создать экземпляр структуры и задать свои поля по мере необходимости.

Например:

LARGE_INTEGER intToLargeInt(int i) { 
    LARGE_INTEGER li; 
    li.QuadPart = i; 
    return li; 
} 

Вы можете использовать его как это:

KeSetTimer(pTimer, intToLargeInt(0), pDpc); 
Смежные вопросы