Задать вопрос
@nait123321

Почему не подключается библиотека DLL к проекту Visual Studio C++?

Здравствуйте, по методичке создал DLL библиотеку, и по ней же подключил файлы к проекту, но #include их не видит, пишет мол не может открыть файл8znsemgcUro.jpg
В чём проблема?
  • Вопрос задан
  • 3571 просмотр
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Daniro_San
@Daniro_San
Программист
Итак, допустим у нас есть динамическая библиотека 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 функций
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
petermzg
@petermzg
Самый лучший программист
#include
и линковка разные вещи.
include это пути к файлам заголовков (*.h) - прописывается в свойствах проекта
А линковка это путь к lib файлу - тоже в свойствах, но иначе.
Ответ написан
Daemon23RUS
@Daemon23RUS
указать верный путь к DLL.h
Вероятно что файл или не доступен для чтения или находится в другом месте
Ответ написан
Комментировать
@sitev_ru
sitev.ru - мой блог ...
Вроде всё просто, у меня работает: sitev.ru/post/77
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы