uso puede permanentemente para otro obligatorio necesarios los instalar informacion formato firmados firma fabricante este especificadores dispositivo deshabilitar controladores contiene comprobar archivo c++ c windows printf unsigned

c++ - permanentemente - windows no puede comprobar la firma digital de este archivo windows 7



Formato de printf para__int64 sin firmar en Windows (5)

Aquí hay una solución para la salida HEX

printf("%08X%08X", static_cast<UINT32>((u64>>32)&0xFFFFFFFF), static_cast<UINT32>(u64)&0xFFFFFFFF));

Necesito imprimir un valor ULONGLONG ( unsigned __int64 ). ¿Qué formato debo usar en printf ? Encontré %llu en otra pregunta pero dicen que es solo para Linux.

Gracias por tu ayuda.


El uso de Google para buscar "Visual Studio printf unsigned __int64" produce esta página como primer resultado, lo que indica que puede usar el prefijo I64 , por lo que el especificador de formato sería %I64u .


Le recomiendo que use el formato PRIu64 especificado de una biblioteca C estándar. Fue diseñado para proporcionar a los usuarios un especificador de formato para enteros de 64 bits sin signo en diferentes arquitecturas.

Aquí hay un ejemplo (en C, no en C ++):

#include <stdint.h> /* For uint64_t */ #include <inttypes.h> /* For PRIu64 */ #include <stdio.h> /* For printf */ #include <stdlib.h> /* For exit status */ int main() { uint64_t n = 1986; printf("And the winning number is.... %" PRIu64 "!/n", n); return EXIT_SUCCESS; }


Printf tiene diferentes especificadores de formato para unsigned long long dependiendo del compilador, he visto %llu y %Lu . En general, le aconsejaría que use std::cout y similar en su lugar.


%llu es la forma estándar de imprimir unsigned long long , no es solo para Linux, en realidad está en C99. Por lo tanto, el problema es utilizar un compilador compatible con C99, es decir, no Visual Studio.

C99 7.19.6 Funciones de entrada / salida formateadas

ll (ell-ell) Especifica que el siguiente especificador de conversión d, i, o, u, x, o X se aplica a un argumento long long int o unsigned long long int; o que un siguiente especificador de conversión se aplique a un puntero a lo largo del argumento int largo.