LNK2019 о функции, которая существует во включенном * .cpp файле - PullRequest
1 голос
/ 18 октября 2019

Для Visual Studio 2019 в Windows 10 в новом проекте я получаю неожиданную ошибку LNK2019.

У меня есть тестовая функция, вызывающая функцию в другом проекте, где я включил необходимые *.cppфайл в тестовый проект, чтобы я мог получить доступ к внутренним компонентам DLL для тестирования.

test.cpp:

#include "dllsubmodule.h"

void TestCountPagesInSomething()
{
    // ... setup ...
    int nPages;
    nPages = CountPagesInSomething(iCurrentPos, hashFoundPages, hashPageCounts, sFoundData);
}

int main(int argc, char **argv)
{
    TestCountPagesInSomething();
}

dllsubmodule.h

#pragma once

int CountPagesInSomething(
    int iCurrentPos, 
    std::map<int, ERPPageInfo>& hashFoundPages, 
    std::map<std::string, int>& hashPageCounts, 
    const wxString& sFoundData
);

dllsubmodule. cpp

#include "stdafx.h"
#include "dllsubmodule.h"

int CountPagesInSomething(
    int iCurrentPos, 
    std::map<int, ERPPageInfo>& hashFoundPages, 
    std::map<std::string, int>& hashPageCounts, 
    const wxString& sFoundData
)
{
    // implementation code here...
}

По какой-то причине ошибка компоновщика, кажется, жалуется, что CountPagesInSomething() не существует. Я подозреваю, что у меня проблемы с вариациями искажения имен, но я не знаю, как диагностировать проблему.

Примечание: CountPagesInSomething() является внутренним для DLL, а не экспортом DLL.

Сейчас это просто консольный проект. Я пытаюсь заставить работать базовый printf() тест, прежде чем выяснить, какой тип модульного тестирования использовать.

...