Как использовать GoogleTest на MFC DLL с AFX_EXT_CLASS - PullRequest
0 голосов
/ 12 марта 2019

Добавление модульных тестов в устаревшую линейку бизнес-приложений. В конце концов, цель - вывести МФК в тонкую обертку. Тем временем я делаю проект googletest, в котором mfc используется как общий dll для тестирования внутренних классов, которые в настоящее время находятся в mfc dll.

foo.h
#pragma once
class AFX_EXT_CLASS CFoo
    {
    public:
        CFoo();
        ~CFoo();
    ....
    private:
    ....
 };

 foo.cpp
 #include "foo.h"
 CFoo::CFoo() { .... }
 .....

У меня проблемы с препроцессором:

foo.vcxproj: _USRDLL _AFXEXT  //mfc dll OK

foo.test.vcxproj: _AFXEXT //mfc exe builds OK. Runtime ERROR: process execution failed with exit code -1073741819

или

foo.test.vcxproj: _AFXDLL // mfc exe fails to build inconsistent DLL linkage.


foo.test.vcxproj: // mfc exe fails to build inconsistent DLL linkage.

Часть googletest является проблемой только потому, что она использует .cpp, используемый в dll для использования в .exe

Любой совет приветствуется.

...