Как заставить компилятор Visual Studio НЕ игнорировать файлы, которые я нигде не включил (но которые есть в моем проекте) - PullRequest
0 голосов
/ 15 января 2012

Я написал систему, которая регистрирует метаданные для класса при запуске статического bool.

Например:

   bool CreateMetaDataForTestClass() {
     // Registration of metadata
   }

   static bool initBoolForTestClass = CreateMetaDataForTestClass();

Система прекрасно работает.

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

Если мне повезет - есть ли переключатель компилятора, который решает эту проблему?

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

Ответы [ 2 ]

0 голосов
/ 15 января 2012

В какой-то момент вам нужно сообщить системе, какие классы доступны. Если вы хотите иметь статически связанный исполняемый файл, вам нужно будет указать все объектные файлы, связанные с исполняемым файлом. Если вы хотите указать доступные классы только во время выполнения, вам нужно будет предоставить некоторую конфигурацию (например, путем поиска в определенном каталоге или файле, содержащем список объектов) для общих объектов, которые ваша программа должна загрузить. Там не будет просто волшебно.

0 голосов
/ 15 января 2012

Вам понадобится проект make-файла.http://msdn.microsoft.com/en-us/library/txcwa2xx%28v=vs.80%29.aspx

...