1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

MSVC++ não aceita implementações de funções built-in

O Meu Microsoft Visual C++ 2005 veio com o C++ - How to Program, 6th edition da Deitel. Nos últimos capítulos, ele ensina a Debugar. Sem problemas, até eu usar um projeto existente. (Lembrando, o projeto funciona sem problemas com o MinGW ( GNU GCC 4.8.1)).

Nele, eu havia implementado uma função chamada int strlen(const char* var). Há uma função em que tem o mesmo uso, mas seu retorno é size_t (eu acredito que isso seja unsigned short int). O meu projeto NÃO inclui esse header, mas eu não consigo compilar.

Os erros são esses:

1>..\..\Py2Pyw\main.cpp(8) : error C2556: 'int strlen(const char *)' : overloaded function differs only by return type from 'size_t strlen(const char *)'
1>        C:\Microsoft Visual Studio 8\VC\include\string.h(80) : see declaration of 'strlen'
1>..\..\Py2Pyw\main.cpp(8) : error C2371: 'strlen' : redefinition; different basic types
1>        C:\Microsoft Visual Studio 8\VC\include\string.h(80) : see declaration of 'strlen'
1>..\..\Py2Pyw\main.cpp(8) : error C2169: 'strlen' : intrinsic function, cannot be defined
1>..\..\Py2Pyw\main.cpp(18) : error C3861: 'strlen': identifier not found
1>..\..\Py2Pyw\main.cpp(18) : error C2440: 'initializing' : cannot convert from 'size_t (__cdecl *)(const char *)' to 'int'
1>        There is no context in which this conversion is possible
1>..\..\Py2Pyw\main.cpp(19) : error C3861: 'strlen': identifier not found
1>..\..\Py2Pyw\main.cpp(19) : error C2440: 'initializing' : cannot convert from 'size_t (__cdecl *)(const char *)' to 'int'
1>        There is no context in which this conversion is possible
1>..\..\Py2Pyw\main.cpp(49) : error C3861: 'strlen': identifier not found
1>..\..\Py2Pyw\main.cpp(49) : error C2440: 'initializing' : cannot convert from 'size_t (__cdecl *)(const char *)' to 'const int'
1>        There is no context in which this conversion is possible
1>..\..\Py2Pyw\main.cpp(146) : error C2568: '*' : unable to resolve function overload
1>        C:\Microsoft Visual Studio 8\VC\include\string.h(80): could be 'size_t strlen(const char *)'
1>..\..\Py2Pyw\main.cpp(146) : error C3861: 'strlen': identifier not found

Como eu configuro-o para poder compilar?

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags visual-studio c++ headers ou faça a sua própria pergunta.