为什么我在编译DLL项目时收到错误LNK1561"必须定义入口点"?

Rad*_*oga 6 c++ dll dynamic-library visual-studio-2015

我尝试将一个非常简单的动态库项目编译为.dll文件.项目名称为"Library".我正在使用Visual Studio 2015,项目属性如下:

调试属性

发布属性

在项目中只有两个文件:ClassA.h和ClassA.cpp.

ClassA.h中的代码是:

#ifndef CLASSA_H
#define CLASSA_H

using namespace std;

#ifdef LIBRARY_EXPORTS
#define CLASSA_API __declspec(dllexport) 
#else
#define CLASSA_API __declspec(dllimport) 
#endif

class ClassA
{
public:
    static CLASSA_API void func();
};


#endif
Run Code Online (Sandbox Code Playgroud)

ClassA.cpp中的代码是:

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


void ClassA::func()
{
    cout << "SUCCESS!" << endl;
}
Run Code Online (Sandbox Code Playgroud)

当我尝试编译此项目时,我收到此错误:

严重性代码说明项目文件行错误必须定义LNK1561入口点库C:\ Users\UX303\Documents\Visual Studio 2015\DLLTest\Library\LINK 1

小智 9

您的配置可能不正确.

一定要仔细检查"Active Configuration"(调试/发布),看看你是否真的在构建DLL.

我刚犯了这样的错误,遇到了这个问题.

  • 当您从调试切换到发布时,配置文件会重置为 EXE,而它应该是 DLL。所以检查一下配置。此外,如果您要部署到另一台计算机,则必须将其设置为“发布”。而且 - 我不确定这是否是 100% 必需的,但是我在客户端计算机上安装了一个软件包“Microsoft C++ Redistributable”,一旦我做了这两件事,错误就消失了。 (2认同)