RSFalcon7 Posted February 20, 2012 at 03:16 PM Report Share #440433 Posted February 20, 2012 at 03:16 PM Boa tarde a todos, Infelizmente estou a trabalhar com o Visual Studio ?, e ele insiste em dar este erro: error C2371: 'actualizarDirecao' : redefinition; different basic types c:\...\project\simple2.c 402 Segundo a documentação [http://msdn.microsoft.com/en-us/library/t6xy3ys5(v=vs.71).aspx] este erro tem a ver com redefinições, no entanto não há qualquer redefinição na linha do erro nem nos arredores, já alterei o nome de todos os identificadores e o erro continua. Desde já obrigado, RSFalcon7 Link to comment Share on other sites More sharing options...
RSFalcon7 Posted February 20, 2012 at 03:18 PM Author Report Share #440434 Posted February 20, 2012 at 03:18 PM Para o caso de alguém querer ver o código: 379:void transposta(double m[16]) { double aux[] = {m[1],m[2],m[3],m[6],m[7],m[11]}; /* 0 4 8 12 \ 0 1 2 3 1 5 9 13 --------\ 4 5 6 7 2 6 10 14 --------/ 8 9 10 11 3 7 11 15 / 12 13 14 15 */ m[1] = m[ 4]; m[2] = m[ 8]; m[3] = m[12]; m[6] = m[ 9]; m[7] = m[13]; m[11] = m[14]; m[ 4] = aux[0]; m[ 8] = aux[1]; m[12] = aux[2]; m[ 9] = aux[3]; m[13] = aux[4]; m[14] = aux[5]; } 402:void actualizarDirecao(double _trans[3][4] ) { double aux[16]; int i; // aux AR matrix to GL matrix argConvGlpara(_trans, aux); // Fix scales transposta(aux); if(invertMatrix(aux) != 0) return; // Remove translations aux[12]=0; aux[13]=0; aux[14]=0; for( i=0 ; i<16 ; i++) transform[i] = (GLfloat) aux[i]; } Link to comment Share on other sites More sharing options...
pmg Posted February 20, 2012 at 03:26 PM Report Share #440437 Posted February 20, 2012 at 03:26 PM Mas estás a usar a linguagem C++ ou a linguagem C (quadro de C++; nome do ficheiro: c:\...\project\simple2.c)? Verifica lá (outra vez) se não tens outra definição (ou protótipo) da função actualizarDirecao. What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código! Link to comment Share on other sites More sharing options...
RSFalcon7 Posted February 20, 2012 at 03:45 PM Author Report Share #440438 Posted February 20, 2012 at 03:45 PM Mas estás a usar a linguagem C++ ou a linguagem C (quadro de C++; nome do ficheiro: c:\...\project\simple2.c)? C, pela força do hábito o tópico veio parar à secção C++ Verifica lá (outra vez) se não tens outra definição (ou protótipo) da função actualizarDirecao. Dentro de todos os ficheiros do projecto [e mais alguns que o VS indexa] não tenho, além de que esta função já se chamou updateDir, atualizarDirecao, _atualizarDirecao, __atualizarDirecao, ___atualizarDirecao, ____atualizarDirecao e _____atualizarDirecao e o erro continua no mesmo lugar, sempre no nome da função. Link to comment Share on other sites More sharing options...
pmg Posted February 20, 2012 at 03:50 PM Report Share #440440 Posted February 20, 2012 at 03:50 PM o erro continua no mesmo lugar, sempre no nome da função Hmmm ... já experimentaste apagar os ficheiros de suporte que o VisualStudio cria (para diversas coisas ...) ou até começar um projecto novo com os mesmos ficheiros 'source'? What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código! Link to comment Share on other sites More sharing options...
RSFalcon7 Posted February 20, 2012 at 03:55 PM Author Report Share #440441 Posted February 20, 2012 at 03:55 PM Hmmm ... já experimentaste apagar os ficheiros de suporte que o VisualStudio cria (para diversas coisas ...) ou até começar um projecto novo com os mesmos ficheiros 'source'? Não, mas acabei de experimentar mudar as funções para uma zona mais acima do ficheiro e o erro desapareceu. Por estas e por outras que considero o Visual Studio um mal IDE. Link to comment Share on other sites More sharing options...
pmg Posted February 20, 2012 at 03:57 PM Report Share #440444 Posted February 20, 2012 at 03:57 PM uma pergunta e resposta no StackOverflow indica que talvez estejas a chamar a função antes da definição. acabei de experimentar mudar as funções para uma zona mais acima do ficheiro e o erro desapareceu. E, aparentemente, é isso mesmo que te aconteceu. What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código! Link to comment Share on other sites More sharing options...
RSFalcon7 Posted February 20, 2012 at 04:20 PM Author Report Share #440452 Posted February 20, 2012 at 04:20 PM exato. Já mandei um feedback à Microsoft a reportar o bug na documentação ? Link to comment Share on other sites More sharing options...
fjmsa93 Posted May 18, 2012 at 09:16 PM Report Share #456763 Posted May 18, 2012 at 09:16 PM nao deveria ser bug da microsoft... simplesmente deves ter chamado a funçao antes teres iniciado... é a mesma coisa que colocares o main antes de outras funçoes que chamas... Link to comment Share on other sites More sharing options...
RSFalcon7 Posted May 21, 2012 at 10:18 AM Author Report Share #457104 Posted May 21, 2012 at 10:18 AM mas o compilador deveria dar informação útil para o debug.... Link to comment Share on other sites More sharing options...
Flinger Posted May 21, 2012 at 01:25 PM Report Share #457133 Posted May 21, 2012 at 01:25 PM E envia, esse erro. É mais uma das razões pelas quais normalmente se coloca os protótipos das funções antes do código, ou mesmo em ficheiros .h. Tens alturas em que, por muito que queiras, não consegues uma ordem que te elimine os erros. Mesmo que não queiras usar os .h, podes declarar os protótipos todos no início do ficheiro. Depois já podes colocar o código das funções na ordem que queres, sem teres de ligar a este tipo de hierarquia. Tens é de ter o cuidado de actualizares o protótipo de uma função sempre que alterares o tipo de retorno ou os parâmetros de entrada. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now