Итак, допустим у нас есть динамическая библиотека MyDLL.dll c следующим кодом
#include <windows.h>
int __declspec(dllexport) MyDLLSqr(const int n) {
return n*n;
}
extern "C" bool __declspec(dllexport)
DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) {
return true;
}
И наш проект с MyDLL.dll и файлом main.cpp и следующим кодом:
#include <iostream>
extern "C" void __declspec(dllimport) MyDLLSqr (const int);
int main() {
std::cout<< MyDLLSqr(4); // 4
}
Вот так примерно всё работает.
А как вы подключали DLL ?
Скорее всего в отсутствующем файле DLL.h было что то вроде
#pragma once
#ifdef BUILD_DLL
#define DLL_EXPORT __declspec(dllexport)
#else
#define DLL_EXPORT __declspec(dllimport)
#endif
extern "C" void DLL_EXPORT MyDLLSqr (const int);
Для удобства использования объявленных в вашей DLL функций