Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ ';附加示例';:不一致的dll链接:在visual studio中使用空项目选项创建dll时_C++_Visual Studio_Dll_Dynamic Linking - Fatal编程技术网

C++ ';附加示例';:不一致的dll链接:在visual studio中使用空项目选项创建dll时

C++ ';附加示例';:不一致的dll链接:在visual studio中使用空项目选项创建dll时,c++,visual-studio,dll,dynamic-linking,C++,Visual Studio,Dll,Dynamic Linking,最小可复制示例: 创建项目时,我在菜单中选择了空项目。创建项目后,我确实将配置类型更改为dll 在此之后,我创建了两个文件,Calculations.h和cpp 两个文件的内容: 计算。h #pragma once #ifdef CALCULATIONS_EXPORTS #define CALCULATIONS_API __declspec(dllexport) #else #define CALCULATIONS_API __declspec(dllimport) #endif CAL

最小可复制示例:

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

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

两个文件的内容:

计算。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);
计算。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'

如何解决此问题?

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

我建议您可以参考以下链接:

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

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

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


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

在构建dll时是否添加了
计算\u导出
作为预处理器符号,以便将
计算\u API
定义为
\u declspec(dllexport)
?您只希望在构建dll时定义此项,而不是使用。不,对不起,我该如何做?相关:本演练假设您使用dll项目模板:我看到该模板在设置中为您添加了预处理器定义。我也尝试了遵循本教程,但我看到创建了类似dllmain、pch.h/cpp的文件。如果我用我的方式创建空项目而不选择dll,有什么区别吗?@Farhan Ahmed你有什么更新吗?如果您的案件已经解决,请帮助标记答案。如果没有,请随时与我们联系。您的理解与合作将不胜感激。