使用dllimport代替dllexport

问题描述 投票:1回答:1

[在Visual Studio 2015中构建dll时,我似乎可以互换使用__declspec(dllexport)__declspec(dllimport)。在制作DLL时,我曾想过会需要dllexport命令,但似乎dllexport ]或dllimport就足够了。我有以下头文件声明了一个简单的add()函数:

add.h

#pragma once

#ifdef ADDDLL_EXPORTS
#define ADDDLL_API __declspec(dllexport)
#else
#define ADDDLL_API __declspec(dllimport)
#endif

ADDDLL_API int add(int x, int y);

在cpp文件中具有以下定义:

add.cpp

#include "add.h"

int add(int x, int y)
{
    return x + y;
}

无论是否在“配置属性”>“预处理器”>“预处理器定义”中定义了ADDDLL_EXPORTS,我似乎都可以使用内置的DLL。例如,在一个包含.lib文件作为附加依赖项的单独项目中(配置属性>链接器>输入>附加依赖项),我运行了以下代码

main.cpp

#include <iostream>
#include "add.h"

int main()
{
    int sum = add(4, 5);
    std::cout << "sum = " << sum << std::endl;
    std::system("pause");
    return 0;
}

任何见识表示赞赏。让我知道是否需要更多信息。预先感谢!

c++ dll dllimport dllexport declspec
1个回答
2
投票
如果仔细看,您将看到您的DLL项目使用

warnings

© www.soinside.com 2019 - 2024. All rights reserved.