背景
我是一个新手,我正在通过微软的官方指导学习如何在C++中构建和使用DLL. https://learn.microsoft.com/en-us/cpp/build/walkthrough-creating-and-using-a-dynamic-link-library-cpp?view=msvc-170个
我发现它使用一个头文件来判断是否存在某个宏(MATHLIBRARY_EXPORTS)来获得两个版本MATHLIBRARY_API宏定义.然后在DLL构建项目和客户端项目中使用此头文件.
我不知道宏(MATHLIBRARY_EXPORTS)的定义在哪里,我想try 使用"__declspec(Dllexport)"来构建一个DLL,所以我在Visual Studio中创建了两个项目进行测试.
问题
在DLL构建项目中,我只在头文件中的函数声明前使用了"dllexport",并成功构建了一个DLL.让我困惑的是,当我在客户端项目中包括这个头文件并给我一个正确的结果(在控制台中打印"Hello world")时,它可以工作. 这正常吗?为什么我不需要将函数声明为"dllimport",它就可以工作?header fileclient projectresult