ошибка C2011: переопределение типа 'classname': 'class' - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть тестовый проект CLI / Cpp в VS2017. Я добавил проект (.exe) в качестве ссылки на этот проект unitTest. В проекте у меня также есть источник, который включает заголовочный файл, который также является частью проекта .exe.

Теперь во время сборки я получаю

headerFile.h : error C2011: 'className': 'class' type redefinition

Я попытался выполнить поиск по проекту поиск в SOlution Explorer, нашел 2 области, одна в .exe и другие в .h. Возможно, это проблема переопределения.

edit ... добавление кода, если это может помочь ...

file1.h

namespace nam
{
    public ref class className
    {
       void aFunction();  //defined in its .cpp
    }
}

У меня есть его его. cpp с определением aFunction ().

Теперь я строю проект с использованием file1.h и file2.h. и создайте project1.exe. В этом проекте у меня также есть другой код.

Теперь у меня есть проект unitTest для VS2017, названный project1UnitTest. Я добавил file1.h, так как мне нужен этот файл в каком-то файле unitTestfile (скажем, unitTestfil. cpp). Также я добавил проект project1 как Ссылки на project1UnitTest, чтобы связать зависимости (файлы определений)

#include "file1.h"
namespace nam
{
  [TestClass]
    public ref class UnitTests
    {
       [ClassInitialize()]
        static void case1(TestContext^ testContext)
        {
        //some code
        }
     }
}

При сборке unitTestfil. cpp / unitTEst project Я получаю эту ошибку. Может ли кто-нибудь рассказать о том, как решить эту проблему?

...