Поделиться 

Автор: Barbar1an
Иногда нужно в С/С++ коде получить некоторые параметры из VC++ проекта, например его название. Очень полезно на случай всяких переименований в проекте.
Это можно сделать так:
Добавить в
Configuration Properties | C/C++ | Preprocessor | Preprocessor Definitions
например такие определения:
PROJECT_NAME=L\"$(ProjectName)\"
PROJECT_TARGET_FILENAME=L\"$(TargetFileName)\"
(тут я использую юникод)
И в коде соответсвенно можно обращаться:
wchar_t * GetProjectName() { return PROJECT_NAME; }
Также эти определения можно задать в
Configuration Properties | Resources | General | Preprocessor Definitions
И тогда можно использовать эти данные в ресурсных файлах .rc и .rc2
Например:
VS_VERSION_INFO VERSIONINFO
FILEVERSION VERSION_FILE
PRODUCTVERSION VERSION_PRODUCT
FILEFLAGSMASK 0x17L
#ifdef _DEBUG
FILEFLAGS VS_FF_DEBUG
#else
FILEFLAGS 0x0L
#endif
FILEOS VOS__WINDOWS32
FILETYPE VFT_DLL
FILESUBTYPE VFT2_UNKNOWN
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "000904b0"
BEGIN
VALUE "InternalName", PROJECT_NAME
VALUE "OriginalFilename", PROJECT_TARGET_FILENAME
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x9, 1200
END
END25 января 2011
Категории: Visual Studio
| Artem | Постоялец | www | 2 ноя. 2011 | 23:22 | #2 |
|---|
Пишем в батнике
* * * *
set MY_SUPER_VAR=c:\super_path
my_solution.sln
* * * *
Ну и в preprocessor defenitions вставляем аналогичную строчку
MY_SUPER_VAR_DEFENITION=L\"$(MY_SUPER_VAR)\"
Удобно тем, что данная переменная будет работать только, когда солюшен запущен через батник. Либо можно использовать несколько батников с разными значениями.
| kvakvs | Постоялец | www | 3 ноя. 2011 | 0:30 | #3 |
|---|
Пусть решение не такое простое, как генерация заголовков, но зато можно получить все-все настройки, пути к файлам, и т.д..
Правка: 3 ноя. 2011 0:31
| NickGastovski | Постоялец | www | 23 фев. 2012 | 13:27 | #4 |
|---|
| Barbar1an | Постоялец | www | 23 фев. 2012 | 13:42 | #5 |
|---|
да и делать это часто не нада, раз настроил на проект и всё, или кто-то создает проекты по 10 в день?
| NickGastovski | Постоялец | www | 23 фев. 2012 | 13:50 | #6 |
|---|
Вот,что то нашел
http://social.msdn.microsoft.com/Forums/nl-BE/vcgeneral/thread/a4… -6f644a679862
/ Форум / Программирование игр / Общее