我正在尝试使用此guide在VS2019中创建.dll和.lib文件,并以静态和动态方式加载我的库。我有一个名为dllSolution的dll项目。在我的dllSolution中,有标准的framework.h,pch.h,dllmain.cpp,pch.cpp和我的a.h文件:
#pragma once
#ifdef DLLSOLUTION_EXPORTS
#define DLLSOLUTION_API __declspec(dllexport)
#else
#define DLLSOLUTION_API __declspec(dllimport)
#endif // !DLLSOLUTION_EXPORTS
#ifndef WINAPI
#define WINAPI __stdcall
#endif // !WINAPI
extern "C" DLLSOLUTION_API int WINAPI a();
带有a.cpp:
#include "a.h"
#include "pch.h"
#ifndef WINAPI
#define WINAPI __stdcall
#endif // !WINAPI
int WINAPI a() { return 10; }
但是当我构建这个项目时,它不会产生.lib文件,就好像没有从库中导出文件一样:
1>------ Rebuild All started: Project: dllSolution, Configuration: Debug Win32 ------
1>pch.cpp
1>a.cpp
1>dllmain.cpp
1>Generating Code...
1>dllSolution.vcxproj -> C:\CoolPathToMyDll\dllSolution\Debug\dllSolution.dll
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========
我尝试将实现移入dllmain.cpp,但没有结果。我也尝试过将ConfigurationType切换到StaticLibrary(.lib)并生成.lib,但是,当我将库静态链接到另一个项目并在main()中使用此a()时,它说:
error LNK2019: unresolved external symbol __imp__a@0 referenced in function _main
问题是什么,为什么会发生此问题?