macro trick

Тема в разделе "LANGS.C", создана пользователем a6515e708cb74455, 30 сен 2011.

  1. a6515e708cb74455

    a6515e708cb74455 New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2011
    Сообщения:
    6
    Всем привет
    как активировать макрос во время начала сборки ?
    план такой есть макрос флажок который включает определение
    других макросов

    #define FLAG_IS_RUN_BUILD 0


    и есть функция которую надо подменить на макрос но не сразу
    а во время сборки
    Код (Text):
    1. VOID CoolFunc(DWORD dwRate, PCSTR pszSelect);
    где то в хидере
    Код (Text):
    1. #if FLAG_IS_RUN_BUILD
    2. #define CoolFunc(...) FakeCoolFunc(my_Arg1, __VA_ARGS__)
    3. #endif
    где то в коде
    Код (Text):
    1. // intellisense показывает параметры CoolFunc
    2. CoolFunc(17, "test");
    смысл в том что до запуска сборки intellisense должен
    показывать типы и имена параметров CoolFunc а как только начнется сборка все вызовы CoolFunc должны подмениться на FakeCoolFunc а для этого надо в момент начала сборки активировать макрос FLAG_IS_RUN_BUILD
    ну или найти другой путь

    P.S
    для VC++ 2010 вроде есть макрос __INTELLISENSE__ не знаю
    как он работает не проверял потому что у меня VC++ 2008 и решение мне надо для нее найти
     
  2. 0ray

    0ray New Member

    Публикаций:
    0
    Регистрация:
    1 апр 2011
    Сообщения:
    2
    Ключ компилера -D подойдет?
     
  3. a6515e708cb74455

    a6515e708cb74455 New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2011
    Сообщения:
    6
    intellisense видит что мы указали -D а должна не видеть
    посути если во время запуска пропатчить файл RSP0000B934401316.rsp
    с настройками который создается и добавить туда дефайн то будет
    именно то поведение которое нужно intellisense не видит
    и показывает настоящие функции а компилятор все правильно подменит

    надо как то указать дефайн но не через студию и гуй потому что
    их видит шибко умный intellisense