Estou portando o código do Linux C para o Visual C ++ para windows.
O Visual C ++ não sabe, #include <stdint.h>
então comentei.
Mais tarde, encontrei muitos desses 'uint32_t': identifier not found
erros. Como pode ser resolvido?
c++
c
visual-c++
kevin
fonte
fonte
uint32_t
e outros tipos inteiros de largura exata são apenas parte de C99 e C ++ 0x, portanto, compiladores mais antigos (como Visual C ++ 2008 e anteriores) não os têm.Respostas:
Este tipo é definido no cabeçalho C,
<stdint.h>
que faz parte do padrão C ++ 11, mas não é padrão no C ++ 03. De acordo com a página da Wikipedia no cabeçalho , ele não foi enviado com o Visual Studio até o VS2010.Enquanto isso, você provavelmente pode falsificar sua própria versão do cabeçalho adicionando
typedef
s que mapeiam os tipos inteiros personalizados da Microsoft para os tipos esperados por C. Por exemplo:Espero que isto ajude!
fonte
__int32
.u_int32_t
euint32_t
não são do mesmo tipo; um tem um sublinhado extra após ou
. Isso parece um problema separado.Você pode
#include <cstdint>
. Faz parte do C ++ - padrão desde 2011.fonte
Eu tenho o mesmo erro e ele corrigiu incluindo no arquivo o seguinte
no início de seu arquivo.
fonte
Boost . O Config oferece esses typedefs para conjuntos de ferramentas que não os fornecem nativamente. A documentação para esta funcionalidade específica está aqui: Tipos inteiros padrão
fonte
Há uma implementação disponível na página do projeto msinttypes - "Este projeto preenche a ausência de stdint.h e inttypes.h no Microsoft Visual Studio".
Não tenho experiência com essa implementação, mas já a vi recomendada por outras pessoas no SO.
fonte
No Windows, geralmente uso tipos de janelas. Para usá-lo, você deve incluir
<Windows.h>
.Neste caso, uint32_t é UINT32 ou apenas UINT.
Todas as definições de tipos estão aqui: http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx
fonte
Tive que executar o projeto no VS2010 e não consegui introduzir nenhuma modificação no código. Minha solução foi instalar o vS2013 e no VS2010 apontar VC ++ Directories-> IncludeDirectories to Program Files (x86) \ Microsoft Visual Studio 12.0 \ VC \ include. Então meu projeto compilou sem problemas.
fonte