gpt4 book ai didi

c++ - 在 Visual Studio 2015 中创建一个 dll 库

转载 作者:行者123 更新时间:2023-11-28 06:00:58 25 4
gpt4 key购买 nike

看起来这个例子再简单不过了:

//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 before 包含 header 。这样, header 就可以根据您是导入还是导出来声明正确的原型(prototype)。

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

关于c++ - 在 Visual Studio 2015 中创建一个 dll 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33299176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com