Makró az enum EParts-ban?

Started by UnKn0Wn, 2018-09-15, 12:52:10

Sziasztok,

Például van ez a pánt rendszer: http://metin2hungary.net/index.php/topic,197811.msg1046282.html#msg1046282

common/length.h-ba hozzá kell adni ezt ez enum EParts-hoz:

// #ifdef __SASH_SYSTEM__
PART_SASH,
// #endif


Először azt hittem a készítő csak véletlen tette makrót kommentbe. De nem, ha kiveszem a kommentet, akkor tényleg nem fordul le, ahol van PART_SASH pl a db-ben, máris írja hogy nem létezik. Ha vissza teszem kommentbe a makrót akkor lefordul.

Mi lehet erre a magyarázat? Legalább egy órája nézegetem. A fájl hozzáfér a service.h-hoz amúgy természetesen, illetve a fájlban máshol is vannak makrók, #ifdef __SASH_SYSTEM__ is.

2 opció van:


  • szarul van megírva a makró (pl vessző hiányzik, etc)
  • nincs beincludeolva az a fálj ahol a define van hozzá (könnyen meglehet, hogy a service.h nincs beincludeolva a length.h-ban vagy egyik fájlban sem amit a length.h includeol)

  • Nem néztem meg amit linkeltél, de más lehetőség nem nagyon van. Legegyszerűbben ezt úgy lehet megnézni, hogy vsben megnyitod a projectet, aztán látod ha szürke valami, stb...
    Ha nem látod a válaszom, valamit elrontottál:

    2018-09-16, 02:41:14 #2 Last Edit: 2018-09-16, 03:02:10 by UnKn0Wn
    Be van, illetve a fájlban az a makró máshol is van, ott meg műküdik. Meg más makrók is. Csak az enum EParts-nál nem akarnak működni a makrók.

    Ezért fura az egész.

    VS-el megnyitva nem látok semmit, a makró ugye nem lesz szürke, az include stimmel :D
    Fuck az egész ;D

    Biztos? Csak mert alapból a length.h-ba nincs semmi beincludeolva... esetleg próbáld meg a definet áthozni a length.h-ba onnan ahol most van és úgy nézd meg... Ugye ha van egy fájlod ahol mondjuk van egy ilyen hogy:
    #include "common/service.h"
    #include "common/length.h"

    akkor abban a fájlban a length.h-ból úgy olvasna ki hogy definiálva van a makró, de ha már
    #include "common/length.h"
    #include "common/service.h"

    -t írsz akkor viszont a length.h-ban nincs definiálva a makró...

    De ha nálad kerek perec be van includeolva, akkor who knows... ha bsdn fordítod esetleg lehet hogy egy makedependet kéne tolni fordítás előtt vagy rebuildelni az egészet... ha meg windowson fordítod akkor nem tudom, hogy hogy nem működik... valszeg meg kéne néznem a kódot de ez NYILVÁN nem fog megtörténni ;)
    Ha nem látod a válaszom, valamit elrontottál:

    2018-09-16, 10:33:11 #4 Last Edit: 2018-09-16, 11:38:33 by UnKn0Wn
    Nyomtam makedependet, rebuildeltem. Jó lett :D
    (makedepend oldhatta meg mert szoktam clean-t nyomni sokszor amúgy)

    Téma feloldva ha  már nem aktuális akkor pm és le zárom