У меня есть пространство имен, написанное в решении C #, которое выводит DLL.Эта DLL является внешней зависимостью для проекта C ++ в другом решении.Ранее я использовал VS2013, но с тех пор начал мигрировать на VS2017 и получаю
C2871 'Foo': пространство имен с таким именем не существует.
Вот базовая интерпретация моего кода на C ++.«ExUtil» - это класс в пространстве имен FooExceptionUtil.
#include "FooExUtil.hh"
using namespace Foo::ExceptionUtil;
extern "C" {
void FooExUtilWriteMiniDump (int Option)
{
ExUtil::WriteMiniDump ((ExUtil::Option) Option);
}
}
Пространство имен моего C # выглядит следующим образом:
using System;
using System.Diagnostics;
using System.IO;
using System.Runtime.InteropServices;
namespace Foo.ExceptionUtil
{
static public class ExUtil
{
//Option enum and WriteMiniDump routine defined here
}
}
Мое решение C # выводит DLL, на которую внешне ссылается мое решение C ++,И, как я уже сказал, у меня не было проблем с этим при использовании VS2013.VS2017 изменил способ работы внешних ссылок?Я могу просмотреть пространство имен в браузере объектов решения C ++, и я могу видеть вплоть до отдельных подпрограмм enum Option и WriteMiniDump.Безусловно, пространство имен определено.
-Спасибо