Чтоб макрос был определен в своей студии
От: Amor Россия  
Дата: 13.01.05 15:50
Оценка:
Привет всем. Работаю в VS 6.0.
Вопрос: есть ли возможность сделать так, чтоб определенный код компилировался только в моей студии?
Я представляю себе возможность реализации так:
Рядом с msdev.exe лежит какой-нить файлик или может это даже autoexp.dat.
В котором есть возможность определять некие символы, которые будут определены для каждого файла каждого проекта. Типа, как ключ /d для компилятора.
т.е. пишу там
#define MY_AMOR_STUDIO

и в коде:

#ifndef MY_AMOR_STUDIO
//код, который я не хочу у себя компилировать.
#endif


Есть ли возможность замутить че-нить подобное, есть мысли?
Re: Чтоб макрос был определен в своей студии
От: Patalog Россия  
Дата: 13.01.05 18:09
Оценка:
Здравствуйте, Amor, Вы писали:

[]

Не знаю как для VC 6, а для 7-ки можно написать макрос VCCLCompilerTool + PreprocessorDefinitions Property и повесить его на build событие.
Почетный кавалер ордена Совка.
Re: Чтоб макрос был определен в своей студии
От: WildWildWind Украина http://www.chantingwolf.narod.ru/
Дата: 26.03.05 11:04
Оценка:
Здравствуйте, Amor, Вы писали:

A>Привет всем. Работаю в VS 6.0.

A>Вопрос: есть ли возможность сделать так, чтоб определенный код компилировался только в моей студии?
A>Я представляю себе возможность реализации так:
A>Рядом с msdev.exe лежит какой-нить файлик или может это даже autoexp.dat.
A>В котором есть возможность определять некие символы, которые будут определены для каждого файла каждого проекта. Типа, как ключ /d для компилятора.
A>т.е. пишу там
A>#define MY_AMOR_STUDIO

A>и в коде:


A>
A>#ifndef MY_AMOR_STUDIO
A>//код, который я не хочу у себя компилировать.
A>#endif
A>


A>Есть ли возможность замутить че-нить подобное, есть мысли?


Progect -> Settings -> C++ -> preprocessor defenitions
Прописываю свой дефайн

А потом
A>
A>#ifndef MY_AMOR_STUDIO
A>//код, который я не хочу у себя компилировать.
A>#endif
A>
Страх ляка, а ти не бiйся!
Re: Чтоб макрос был определен в своей студии
От: Valodzka Беларусь  
Дата: 26.03.05 11:53
Оценка:
Метод не самый красивый, но точно больше нигде не будет компилироваться — залезаешь в папку Include и пишешь в любом подключаемом файле, к примеру cstdlib
#ifndef MY_AMOR_STUDIO
#define MY_AMOR_STUDIO
#endif /*MY_AMOR_STUDIO*/

и дальше понятно. Даже при переносе проекта нигде не закомпилится
Не перебивайте меня, когда я вас перебиваю
Re: Чтоб макрос был определен в своей студии
От: Alex Alexandrov США  
Дата: 26.03.05 15:24
Оценка:
Здравствуйте, Amor, Вы писали:

A>Привет всем. Работаю в VS 6.0.

A>Вопрос: есть ли возможность сделать так, чтоб определенный код компилировался только в моей студии?
A>Я представляю себе возможность реализации так:
A>Рядом с msdev.exe лежит какой-нить файлик или может это даже autoexp.dat.
A>В котором есть возможность определять некие символы, которые будут определены для каждого файла каждого проекта. Типа, как ключ /d для компилятора.
A>т.е. пишу там
A>#define MY_AMOR_STUDIO

A>и в коде:


A>
A>#ifndef MY_AMOR_STUDIO
A>//код, который я не хочу у себя компилировать.
A>#endif
A>


A>Есть ли возможность замутить че-нить подобное, есть мысли?


Идея такой разной компиляции мне не очень нравится, но сделать такое можно. Добавляем в макросы компиляции твоего проекта (Project::Settings::C/C++::General::Preprocessor Definitions) строку

MYCOMPUTER=1$(MYCOMPUTER)


а в код — нечто вида

#if MYCOMPUTER != 1
    printf("Hello My Computer!\n");
#else
    printf("Hello World!\n");
#endif


Теперь, если переменная окружения MYCOMPUTER не определена, то будет компилироваться public-версия кода. Если же она установлена в 1 — то скомпилируется твой частный код.
[ Posted via RSDN@Home 1.1.4 beta 4 (303) listening to silent ]
It's kind of fun to do the impossible (Walt Disney)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.