Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 对在VisualStudio中创建dll的理解_C++_Visual Studio_Dll - Fatal编程技术网

C++ 对在VisualStudio中创建dll的理解

C++ 对在VisualStudio中创建dll的理解,c++,visual-studio,dll,C++,Visual Studio,Dll,我在visual studio中创建了一些简单的dll,为了开始使用它,我阅读了以下文章: 在控制台中使用类库中的功能 应用 1) 创建新的控制台应用程序后,将生成一个空程序 为你创造的。源文件的名称与源文件的名称相同 您先前为项目选择的。在本例中,它被命名为 MyExecRefsDll.cpp 2) 使用在动态链接中创建的数学例程 库,则必须引用该库。要执行此操作,请选择 在解决方案资源管理器中的MyExecRefsDll项目,然后选择 “项目”菜单中的“引用…”。在“属性页”对话框中, 展开

我在visual studio中创建了一些简单的dll,为了开始使用它,我阅读了以下文章:

在控制台中使用类库中的功能 应用

1) 创建新的控制台应用程序后,将生成一个空程序 为你创造的。源文件的名称与源文件的名称相同 您先前为项目选择的。在本例中,它被命名为 MyExecRefsDll.cpp

2) 使用在动态链接中创建的数学例程 库,则必须引用该库。要执行此操作,请选择 在解决方案资源管理器中的MyExecRefsDll项目,然后选择 “项目”菜单中的“引用…”。在“属性页”对话框中, 展开“公共属性”节点,选择“框架和参照”, 然后选择添加新参考…按钮。更多信息 关于“引用…”对话框,请参见框架和引用,通用 属性,属性页对话框

3) 将显示“添加参照”对话框。此对话框列出了所有 您可以引用的库。“项目”选项卡列出了所有项目 当前解决方案中的项目及其包含的任何库。在…上 在“项目”选项卡上,选择MathFuncsDell。然后单击OK

4) 要引用动态链接库的头文件,必须 修改包含目录路径。要执行此操作,请在属性页上 对话框中,展开“配置属性”节点,展开C/C++ 节点,然后选择“常规”。在其他包含目录旁边, 键入MathFuncsdl.h头文件的位置路径

5) 可执行文件直到运行时才加载动态链接库。 您必须告诉系统MathFuncsdl.dll的位置。你这样做了吗 通过使用PATH环境变量。要做到这一点,在属性上 “页面”对话框中,展开“配置属性”节点并选择 调试。在Environment旁边,键入以下内容:PATH=,其中是 替换为MathFuncsdl.dll的实际位置。单击“确定”以查看 保存所有更改*

我理解为什么我们需要为头文件和dll(第4段和第5段)设置一个位置,我的问题是为什么我们需要第2段和第3段来引用库?首先,请先从MSDN中简单地解释< /P> < P>“使用此属性页来设置C++项目到.NETFramework程序集、COM组件或外部项目的引用。”
我想大部分是针对托管C++的。引用在VB.NET/C#项目中广泛使用。

需要第2/3步来告诉链接器在哪里可以找到库的编译版本,以便链接器可以针对这些版本进行链接。您可能会发现这很有用:

步骤2和步骤3描述了帮助创建托管项目的步骤,该项目使用.NET framework。 它调用引用程序集,相当于在本机应用程序的库文件中链接。 我想您正在创建一个C++/CLI管理的应用程序