Resultados 1 a 2 de 2
  1. #1
    Membro Stark's Avatar
    Data de Ingresso
    Oct 2015
    Posts
    137
    Thanks Thanks Given 
    9
    Thanks Thanks Received 
    331
    Thanked in
    13 Posts
    Mencionado
    18 Post(s)
    MEU HUMOR
    Fine

    [SUPORTE] Erro ao compilar câmera 3D

    Salve galera, boa tarde!

    Encontrei a source de uma câmera 3D 97D e estou tentando compilar em um main.

    Porém, ao compilar, dá o seguinte erro:
    Gravidade Código Descrição Projeto Arquivo Linha Estado de Supressão
    Erro C2382 'abs': redefinição; especificações de exceção diferentes Customs d:\mu\sources\97d files\97d files\source 97d\customs main\customs\camera.cpp 21

    Gravidade Código Descrição Projeto Arquivo Linha Estado de Supressão
    Erro C2264 'abs': erro na definição ou na declaração da função; função não chamada Customs d:\mu\sources\97d files\97d files\source 97d\customs main\customs\camera.cpp 108

    Gravidade Código Descrição Projeto Arquivo Linha Estado de Supressão
    Erro C2264 'abs': erro na definição ou na declaração da função; função não chamada Customs d:\mu\sources\97d files\97d files\source 97d\customs main\customs\camera.cpp 128

    Gravidade Código Descrição Projeto Arquivo Linha Estado de Supressão
    Erro C2264 'abs': erro na definição ou na declaração da função; função não chamada Customs d:\mu\sources\97d files\97d files\source 97d\customs main\customs\camera.cpp 189






    Segue a source:

    Camera.cpp
    #include "StdAfx.h"

    // InGame - Keyboard procedure
    int iabs ( int var )
    {
    int retval;

    __asm
    {
    MOV EAX , var
    CMP EAX , 0
    JGE notsign
    NEG EAX
    notsign:
    MOV retval , EAX
    }

    return retval;
    }

    float abs ( float var )
    {
    float retval;

    __asm
    {
    FLD var
    FABS
    FSTP retval
    }

    return retval;
    }

    int KeysProc ()
    {
    int F7State = GetAsyncKeyState(VK_F7);

    if (F7Pressed == false)
    {
    if ( F7State != 0 && PushF7 == false)
    {
    PushF7 = true;
    F7Pressed = true;
    }
    else if ( F7State != 0 && PushF7 == true)
    {
    PushF7 = false;
    F7Pressed = true;
    }
    }

    if ( F7State == 0) F7Pressed = false;

    return 1;
    }

    // InGame - 3D Camera procedure
    int CameraProc ()
    {
    POINT tp;
    GetCursorPos( &tp );
    int mx = (tp.x * 639) / *Screen_W;
    int my = (tp.y * 479) / *Screen_H;

    // ================================================== =================
    // Lewo / Prawo
    // ================================================== =================
    if (PushF7 == true)
    {
    if (mx < 636 && mx > 2)
    {
    if (RotSpeed < 0) RotSpeed = RotSpeed + 0.4f;
    if (RotSpeed > 0) RotSpeed = RotSpeed - 0.4f;
    if (RotSpeed > 0 && RotSpeed < 0.2) RotSpeed = 0;
    if (RotSpeed < 0 && RotSpeed > -0.2) RotSpeed = 0;
    }

    if (mx > 636)
    {
    RotSpeed = RotSpeed + 0.4f;
    }

    if (mx < 2)
    {
    RotSpeed = RotSpeed - 0.4f;
    }

    if (RotSpeed > 5) RotSpeed = 5;
    if (RotSpeed < -5) RotSpeed = -5;

    *Camera_RotZ += RotSpeed;
    if (*Camera_RotZ < -405) *Camera_RotZ = -45;
    if (*Camera_RotZ > 315) *Camera_RotZ = -45;

    //if (RotSpeed < 0) DrawBox(630,0,10,432,0,100,0,fabs(RotSpeed) * 10);
    //if (RotSpeed > 0) DrawBox(0,0,10,432,0,100,0,fabs(RotSpeed) * 10);

    // ================================================== =================
    // Góra / Dó³
    // ================================================== =================

    if (my > 470)
    {
    if (*Camera_RotY < 90)
    {
    *Camera_PosZ += 20;
    *Camera_RotY += abs((*Camera_PosZ + 330) / 640);
    if (*Camera_RotY < 60 || *Camera_RotY > 40)
    {
    AddX += 20;
    AddY += 20;
    }
    else
    {
    AddX -= 20;
    AddY -= 20;
    }
    }
    }


    if (my < 10)
    {
    if (*Camera_RotY > 25)
    {
    *Camera_PosZ -= 20;
    *Camera_RotY -= abs((*Camera_PosZ + 330) / 600);
    if (*Camera_RotY < 60 || *Camera_RotY > 40)
    {
    AddX += 20;
    AddY += 20;
    }
    else
    {
    AddX -= 20;
    AddY -= 20;
    }
    }
    }




    if ( GetAsyncKeyState(VK_HOME) != 0 )
    {
    if ( *Camera_Zoom > 0 )
    {
    *Camera_Zoom -= 1;
    if ( AddX > 0 && AddY > 0)
    {
    AddX -= 100;
    AddY -= 100;
    }
    }
    }

    if ( GetAsyncKeyState(VK_END) != 0 )
    {
    if ( *Camera_Zoom < 60 )
    {
    *Camera_Zoom += 1;
    AddX += 100;
    AddY += 100;
    }
    }

    if ( GetAsyncKeyState(VK_F9) != 0)
    {
    *Camera_RotZ = -45;
    *Camera_RotY = 48.5;
    *Camera_PosZ = 150;
    *Camera_ClipX = 1190;
    *Camera_TLeft = 1500;
    *Camera_TRight = 1500;
    *Camera_BLeft = -1500;
    *Camera_BRight = -1500;
    *Camera_Zoom = 35;
    AddX = 0;
    AddY = 0;
    }


    *Camera_TLeft = 1500 + AddX;
    *Camera_TRight = 1500 + AddX;
    *Camera_BLeft = -1500 - AddX;
    *Camera_BRight = -1500 - AddX;

    *Camera_ClipX = 1190 + (abs(*Camera_PosZ - 150) * 3) + AddX + 800;
    *Camera_GlClip = 3000;
    }

    return 1;
    }

    DWORD __stdcall MainProc (PVOID pVoid)
    {
    while(1)
    {
    KeysProc();
    CameraProc();
    Sleep( 20 );
    }

    return 1;
    }

    extern "C" _declspec(dllexport) int Init ()
    {
    DWORD ThreadID;
    HANDLE MyThread = CreateThread( NULL , 0 , (LPTHREAD_START_ROUTINE) MainProc , 0 , 0 , &ThreadID );

    if ( MyThread == NULL )
    {
    MessageBox( 0 , "Cannot create Thread!" , "ERROR" , MB_OK + MB_ICONERROR );
    return 0;
    }

    return 1;
    }

    DWORD __stdcall main( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
    {
    return 1;
    }
    Camera.h
    #ifdef MY9988_DLL_EXPORTS
    #define EXPORT __declspec(dllexport)
    char main_hook[30] = {0x44 , 0x47 , 0x45 , 0x20 , 0x73 , 0x6F , 0x62 , 0x69 , 0x65 , 0x68 , 0x20 , 0x28 , 0x73 , 0x6F , 0x62 , 0x69 , 0x65 , 0x68 , 0x40 , 0x67 , 0x6D , 0x61 , 0x69 , 0x6C , 0x2E , 0x63 , 0x6F , 0x6D , 0x29};
    char author[22] = "http://duality.com.pl";
    #else
    #define EXPORT __declspec(dllimport)
    #endif

    #include <windows.h>
    #define __fltused 1

    #pragma comment( lib , "crtdll.lib" )
    #pragma comment( lib , "libcmt.lib" )
    #pragma comment( lib , "libc.lib" )
    #pragma comment(lib, "libcp.lib")

    #pragma comment( linker , "/entry:main" )

    HANDLE MeHandle;

    float AddY , AddX;
    bool F7Pressed , PushF7 , F10Pressed , PushF10;
    float RotSpeed = 0;

    //0.97d Camera Offsets
    float *Camera_Zoom = (float*) 0x51F7F1;
    float *Camera_PosZ = (float*) 0x54D970;
    float *Camera_RotZ = (float*) 0x88A35E0;
    float *Camera_RotY = (float*) 0x54DD4C;

    float *Camera_TLeft = (float*) 0x4F4468;
    float *Camera_TRight = (float*) 0x4F447E;
    float *Camera_BLeft = (float*) 0x4F448E;
    float *Camera_BRight = (float*) 0x4F449E;
    float *Camera_ClipX = (float*) 0x54DCB0;
    float *Camera_GlClip = (float*) 0x51F862;

    DWORD *Screen_W = (DWORD*) 0x55C4EC;
    DWORD *Screen_H = (DWORD*) 0x55C4F0;
    No StdAfx.h foi incluído:
    #include "Camera.h";

    Alguma luz?

  2. #2
    Developer C++ Ravoc's Avatar

    Data de Ingresso
    Dec 2018
    Posts
    302
    Thanks Thanks Given 
    270
    Thanks Thanks Received 
    768
    Thanked in
    102 Posts
    Mencionado
    14 Post(s)
    MEU HUMOR
    Sad
    País
    France
    Boa noite, quando se á qualquer erro em projetos o visual studio fala qual erro está acontecendo para você ir atrás de ajuda, ou saber oque mais ou menos está acontecendo, o erro C2264, significa que está dando erro na função ou declaração 'ABS'.

    Abaixo um exemplo retirado da guia de ajuda Microsoft. Agora creio que é só rever está função 'ABS' recrie a função.
    'função': erro na definição ou declaração da função; função não chamada
    A função não pode ser chamada devido a uma definição ou declaração incorreta.
    A seguinte amostra gera C2264:

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • You may not post Resposta(s)
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •  
Sobre nós
Somos uma comunidade em atividade a 8 anos que aborda assuntos relacionados a games em geral, principalmente games MMORPG. e que busca sempre ajudar os membros através de conteúdos, tutoriais e suporte...
Nossos anunciantes
Hinetworks
VelozHost
InovHost
Rede Sociais