define

Lisichkin
Дата: 27.04.2015 15:50:04
Добрый день!

Редко пишу на C++, Вот и туплю...
Есть код: verstion.h
#if defined _M_X64
	#define PLATFORM_86		""
	#define PLATFORM_64		"x64"
#elif defined _M_IX86	
	#define PLATFORM_86		"x86"
	#define PLATFORM_64		""
#endif						

#define VER_PRODUCT_VERSION_STR     VER_FILE_VERSION_STR	\
									" Platform " \
									PLATFORM_86 \
									PLATFORM_64 \



Ошибка:
Error 33 error RC2104 : undefined keyword or key name: PLATFORM_86 in app.rc

В чем я не прав?

С Уважением,
Александр.

P.S. MS Visual Studio 2008
Lisichkin
Дата: 27.04.2015 16:10:59
Странно...Поменял на:
#if defined _M_X64
	#define PLATFORM_86		""
	#define PLATFORM_64		"x64"
#else
	#define PLATFORM_86		"x86"
	#define PLATFORM_64		""
#endif	

Компилится, но для файла, созданного для x64 платформа, в описании файла указано x86...
Почему?????
Basil A. Sidorov
Дата: 27.04.2015 16:32:15
Потому, надо полагать, что или VS использует для определения разрядности не _M_X64 или вы компиляете компилятором не той разрядности.
Lisichkin
Дата: 27.04.2015 16:43:52
Basil A. Sidorov
Дата: 27.04.2015 16:52:51
"Other version" не пробовали жамкать?
Lisichkin
Дата: 27.04.2015 16:57:20
Basil A. Sidorov
https://msdn.microsoft.com/en-us/library/b0084kay(v=vs.90).aspx

Так лучше? Или просто флуд???
Basil A. Sidorov
Дата: 27.04.2015 17:09:55
Лично я использовал бы макрос _WIN64, который соответствует типу приложения.
Barlone
Дата: 28.04.2015 10:01:55
Lisichkin
Ошибка:
Error 33 error RC2104 : undefined keyword or key name: PLATFORM_86 in app.rc
Вы видимо включаете этот заголовок в файл ресурсов, а он компилируется не С++ компилятором, там другой набор predefined macros
Lisichkin
Дата: 28.04.2015 10:35:20
Barlone
Большое спасибо за помощь. Да, я использую код version.h в файле ресурсов app.rc.
Макрос __DATE__ работает, и в файл ресурсов попадает правильная информация о дате и времени сборки.
Я думал, что и макросы _M_X64, _M_IX86 , будут работать.. Но :(

Ссылка http://www.tech-archive.net/Archive/VisualStudio/microsoft.public.vsnet.general/2008-10/msg00143.html помогла.
Еще раз БОЛЬШОЕ спасибо!

Александр.