在 Visual Studio 2015 中创建 dll 库
Posted
技术标签:
【中文标题】在 Visual Studio 2015 中创建 dll 库【英文标题】:Creating a dll library in Visual Studio 2015 【发布时间】:2015-10-23 09:36:26 【问题描述】:这个例子看起来再简单不过了:
//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
。因此,当包含头文件时,它认为它正在导入 dll。
@MikeVine 嗨,迈克,嘿,我认为您应该将此评论添加为答案,以便我接受。现在 +1 非常感谢!
【参考方案1】:
您需要在包含标题之前定义EXPORTING_DLL
。这样,标头可以根据您是导入还是导出来声明正确的原型。
如果不这样做,它将导入不是你想要的
【讨论】:
以上是关于在 Visual Studio 2015 中创建 dll 库的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Visual Studio 2015 中创建安装程序?
如何在 Visual Studio 2015 Community 中创建本地数据库?
如何在 Visual Studio 2015 中创建 SQL Server 项目?
在 Visual Studio 2015 中创建后未构建 Xamarin UWP 项目