2010-05-15 5 views
1

Используя следующий псевдокод:Используя директивы препроцессора, чтобы определить выходной путь

#define BUILD_PATH "C:/MyBuild/" 
#define BUILD_NAME "mydll.dll" 
// Set build path here 

, представляющий, как я хотел бы построить текущий проект (а DLL) в C: /MyBuild/mydll.dll, как я бы выполнил это, только используя директивы препроцессора?

+0

Вы имеете в виду «построить», как в ссылке? Вы хотите связать dll с помощью препроцессора? А? Или вы просто хотите объединить два токена? Используйте это: 'const char path [] = BUILD_PATH BUILD_NAME;' Почему вы используете препроцессор вообще? #define считается вредным. Используйте простой 'const char []'. – Stephen

+0

Я имею в виду, используя директивы препроцессора для установки эквивалента Страницы свойств -> Свойства конфигурации -> Линкера -> Общие -> Выходной файл. Я думаю, это можно было бы сделать так же, если бы я мог установить переменную среды из сценария CPP. – Gbps

+0

* Sniff * вы МОЖЕТЕ подстраховать меня тоже: D – Goz

ответ

1

I может быть недоразумением, но я действительно не могу понять, почему вы хотите это сделать, но это выполнимо:

#pragma comment(linker, "/out:c:\mydll.dll") 

Я не могу повторно итерацию достаточно точно, сколько вы не хотите делать это хотя ...

Если вы хотите ПОЛУЧИТЬ выходной путь через информацию о предварительном процессоре, то, боюсь, вы не можете. Эта информация поступает с нескольких этапов после предварительного процессора, поэтому предварительный процессор не может получить эту информацию.

+0

Он будет использоваться в качестве файла конфигурации для небольшого шаблона проекта. Я уверен, что это очень сомнительный путь, но для аудитории, на которую я распространяю это, я считаю, что они были бы благодарны за то, что все эти данные заданы в основном файле, а не просматривали страницы свойств, чтобы каждый раз устанавливать информацию о компоновщике они копируют и вставляют шаблон. – Gbps