Для 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()
тест, прежде чем выяснить, какой тип модульного тестирования использовать.