Компилятор Visual Studio C ++ компилирует собственный код как управляемый - PullRequest
0 голосов
/ 12 декабря 2018

Я запустил новое решение под VS, в котором есть как управляемый проект с кодом UWP, так и собственный проект.Компилятор компилирует нативный код и доставляет файл .lib просто отлично.При компиляции управляемого кода компилятор снова компилирует собственный код - как управляемый код и выдает ошибки.

У меня есть другое решение, которое используется для работы, и я попытался повторить настройки.После дня сравнения настроек свойств я не могу понять, почему он делает то, что делает.

Идеи, где искать?

_____ Новое ниже _____

Я запустил новое решение проекта и повторил все.Вот что я узнал.

Во-первых, порядок компиляции другой - отсутствовал файл stdafx.h, а ошибки перешли с бесконечного на всего 25. Теперь они связаны с одним файлом, MotionBase.Собственный проект компилируется просто отлично, затем управляемый проект компилируется и запускается в MotionBase.Этот пример кода выдает ошибки «MotionBase»: не является членом «BallLib» и «input»: неизвестный спецификатор переопределения ».

#pragma once
#include "stdafx.h"
#include "FiniteDiffHelpers.h"
#include "MotionBase.h"
#include "MultiVarSolver.h"

namespace BallLib {
    class PathFinderHelper : public FiniteDiffHelper
    {
    public:
        PathFinderHelper();
        Line locs;
        BallLib::MotionBase output;
        MotionBase input;

.....

PathFinderHelper прекрасно скомпилирован в собственном проекте.В MotionBase нет ошибок.MotionBase является частью BallLib.Intelisense не выдает ошибок в PathFinderHelper.

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

Убедитесь, что файлы stdafx.h правильно вставлены в код.Порядок сборки отличается, поэтому вы можете попасть в ловушку.

Включить (#include) собственный stdafx.h в управляемый файл pch.h.

0 голосов
/ 24 декабря 2018

Не все соответствующие настройки находятся в диалоговом окне свойств проекта.Также проверьте немодальное окно свойств, особенно с ссылкой на проект-проект, выбранной в обозревателе решений.

Там вы найдете параметр «Использовать входы зависимостей библиотеки», который заставляет основной проект включатьотдельные исходные файлы из библиотечного проекта, вместо статической библиотеки.Убедитесь, что установлено значение False.

enter image description here

...