1

可能是一个非常基本的问题。在 MSVC++ 中开发单项目解决方案时,一切都很有意义,编译器可以看到每个文件。当迁移到多项目解决方案时,管理项目依赖性的界面元素似乎都没有意义(来自 .net 背景。)

对于初学者来说,使用该术语设置项目依赖项似乎只暗示项目的编译顺序。定义中不再附加任何功能,并且从另一个项目中寻址对象或方法将不起作用。#include 依赖的头文件似乎也不起作用,因此依赖项目无法看到其依赖项的文件。将标头的链接从一个项目复制到另一个也不起作用,对于“标头文件”部分下的两个项目,两个位置都引用了相同的文件。即使使用此标头引用也不起作用,并且文件未连接。创建函数依赖的唯一方法是将依赖的路径添加到依赖或更糟的链接器/编译器搜索路径,

要么我遗漏了一些东西,要么 .NET Visual Studio IDE 在 VC++ IDE 严重失败的地方取得了成功。

编辑:

为了提出特定问题,请按照以下步骤在 VC++ 中创建解决方案,我询问是否可以填写缺少的步骤:

  1. 在新解决方案中创建空的 DLL 项目。
  2. 在 DLL 项目中创建方法并编译。
  3. 创建新的空可执行项目。
  4. 在新项目中创建 main 方法。
  5. ...
  6. 在 DLL 项目中具有 main 方法调用功能。

最好使用最现代/行业标准/最佳实践方法来填充缺失的步骤,以最好地保持预期的项目模块化。

由此,我希望能够独立地推断和创建 DLL 类中的类、枚举等,并在可执行项目中访问它们,只要我能找出这是如何完成的。

4

1 回答 1

1

在第 2 步中,按照通常的 C++ 规则,在标头中声明方法。继续阅读, __declspec(DllExport)因为默认方法是 DLL 内部的方法。

在第 5 步中,按照通常的 C++ 规则,包括标题。Visual C++ 需要知道标头来自哪里,因此您需要引用源项目。详细信息因 Visual Studio 版本而异。

在第 6 步中,您以正常方式调用该方法。由于它现在被声明为__declspec(DllImport),编译器会将它留给链接器,而链接器将从正确的 DLL 中获取它。

于 2013-10-14T15:50:53.993 回答