Казалось бы, что пример не мог получить любой проще:Создание библиотеки DLL в Visual Studio 2015
//Example.h
#pragma once
#ifdef EXPORTING_DLL
extern __declspec(dllexport) void HelloWorld();
#else
extern __declspec(dllimport) void HelloWorld();
#endif
//Example.cpp
#include "Functions.h"
#define EXPORTING_DLL
void HelloWorld()
{
}
Итак, что у меня есть проблемы с? OK, при попытке компиляции, как это, то есть после создания типа длла проекта в VS, я получаю предупреждение:
предупреждения C4273: «HelloWorld»: несовместимая длл связь
, если я изменю определение HelloWorld в CPP файле на:
__declspec(dllimport) void HelloWorld()
{
}
Я получаю сообщение об ошибке:
Ошибка C2491 'HelloWorld': определение DllImport функции не допускается
Если с другой стороны, я могу изменить определение из HelloWorld на:
__declspec(dllexport) void HelloWorld()
{
}
Я получаю предупреждение:
Предупреждение C4273 «HelloWorld»: несовместимые дллы тяги
Любой идеи, как определить он так компилируется без каких-либо предупреждений? Я имею в виду, эти предупреждения, по крайней мере, беспокоят.
Вы определяете 'EXPORTING_DLL' после включения файла заголовка. Поэтому, когда заголовок включен, он считает, что он импортирует DLL. –
@MikeVine Привет Майк, эй, я думаю, вы должны добавить этот комментарий в качестве ответа, чтобы я мог его принять. На данный момент +1 и огромное спасибо! – Artur