“AddIntImpl”:dll 链接不一致:在 Visual Studio 中使用空项目选项创建 dll 时

问题描述

最小可重复示例:

在创建项目时,我在菜单中选择了空项目。创建项目后,我确实将配置类型更改为 dll。

enter image description here

此后我创建了两个文件,Calculations.h 和 cpp

enter image description here

两个文件内容

Calculations.h

#pragma once

#ifdef CALculaTIONS_EXPORTS
#define CALculaTIONS_API __declspec(dllexport)
#else
#define CALculaTIONS_API __declspec(dllimport)
#endif

CALculaTIONS_API int AddIntImpl(int a,int b);

Calculations.cpp

#include "Calculations.h"


int AddIntImpl(int a,int b)
{
    return a + b;
}

现在在构建相同的东西时我得到了

1>Calculations.cpp
1>{...Path}\calculations.cpp(5): warning C4273: 'AddIntImpl': inconsistent dll linkage
1>{...Path}calculations.h(9): note: see prevIoUs deFinition of 'AddIntImpl'

我如何解决相同的问题?

解决方法

一般来说,警告不会影响应用程序的运行。所以在编程时通常会忽略警告。

我建议您可以参考以下链接:https://stackoverflow.com/a/19932564/11872808

您可以尝试以下方法来消除警告:

1->点击项目->属性->配置属性->C/C++->高级->禁用特定警告,然后在文本框中添加4273。

2->在您的程序中添加以下语句:#pragma warning(disable:4273).

3->关闭所有警告。在属性页中,打开 C/C++ 文件夹->常规->警告级别并选择“关闭所有警告(/W0)”。