找到关联的dll文件到__declspec(dllexport)
Find the associated dll file to __declspec(dllexport)
我得到了这个庞大的项目,其中许多 类 在 dll 文件中有定义。我需要提取该项目的一部分并从该部分创建一个新项目。我已经设法通过使用 Visual Studio 中的代码图找到了一些 dll 文件,但有些 类 没有显示在那里。
# ifdef FCBase
# define BaseExport __declspec(dllexport)
# else
# define BaseExport __declspec(dllimport)
# endif
class BaseExport Handled
{.
.
};
什么是指定哪些 dll 文件链接到什么?
指令 __declspec(dllexport)
表示使用此指令声明的任何内容都将从 DLL 导出,以供链接到该 DLL 的其他应用程序使用。因此,当为将被编译成 DLL 的代码编写 header 文件时,函数声明和 class 定义将使用此指令进行修饰。另一方面,将使用这些函数和 classes 的代码需要用 __declspec(dllimport)
声明它们,以让链接器知道它们将从 DLL 中导入。
这两个指令通常由单个宏替换,该宏根据项目设置解析为适当的值。这样,您可以在 DLL 实现文件和将使用此 DLL 的某些其他应用程序的实现文件中包含相同的 header。例如,在您的情况下,DLL 项目将定义 FCBase
,因此 BaseExport
将在预处理步骤中解析为 __declspec(dllexport)
。这表明该项目是用于实现DLL的。没有定义 FCBase
的项目,这意味着该项目正在从 DLL 导入 classes 函数。
我得到了这个庞大的项目,其中许多 类 在 dll 文件中有定义。我需要提取该项目的一部分并从该部分创建一个新项目。我已经设法通过使用 Visual Studio 中的代码图找到了一些 dll 文件,但有些 类 没有显示在那里。
# ifdef FCBase
# define BaseExport __declspec(dllexport)
# else
# define BaseExport __declspec(dllimport)
# endif
class BaseExport Handled
{.
.
};
什么是指定哪些 dll 文件链接到什么?
指令 __declspec(dllexport)
表示使用此指令声明的任何内容都将从 DLL 导出,以供链接到该 DLL 的其他应用程序使用。因此,当为将被编译成 DLL 的代码编写 header 文件时,函数声明和 class 定义将使用此指令进行修饰。另一方面,将使用这些函数和 classes 的代码需要用 __declspec(dllimport)
声明它们,以让链接器知道它们将从 DLL 中导入。
这两个指令通常由单个宏替换,该宏根据项目设置解析为适当的值。这样,您可以在 DLL 实现文件和将使用此 DLL 的某些其他应用程序的实现文件中包含相同的 header。例如,在您的情况下,DLL 项目将定义 FCBase
,因此 BaseExport
将在预处理步骤中解析为 __declspec(dllexport)
。这表明该项目是用于实现DLL的。没有定义 FCBase
的项目,这意味着该项目正在从 DLL 导入 classes 函数。