在Visual Studio 2015中创建一个dll库

Creating a dll library in Visual Studio 2015

本文关键字:一个 dll Studio Visual 2015 创建      更新时间:2023-10-16

这个例子似乎再简单不过了:

//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()
{
}  

那么,我有什么问题?好的,当尝试按原样编译时,即在VS中创建dll类型项目后,我收到警告:
警告C4273: 'HelloWorld':不一致的dll链接
如果我在cpp文件中更改HelloWorld的定义为:

   __declspec(dllimport) void HelloWorld()
    {
    }  

我得到错误:

错误C2491 'HelloWorld': dllimport函数的定义不允许
另一方面,如果我将HelloWorld的定义更改为:

__declspec(dllexport) void HelloWorld()
{
}  

我收到警告:

警告C4273 'HelloWorld':不一致的dll链接
知道如何定义它,使其编译没有任何警告吗?我的意思是,这些警告至少是令人担忧的。

您需要在包含标题之前定义EXPORTING_DLL 。这样头文件就可以根据你是导入还是导出来声明正确的原型。

如果不这样做,它将导入,这不是你想要的