gpt4 book ai didi

c++ - Visual C++ 项目引用的新手帮助

转载 作者:行者123 更新时间:2023-11-28 01:29:37 24 4
gpt4 key购买 nike

我对 C++ 几乎一无所知,除了我想拿别人的 C++ 库并将其包装以供 C# 使用。我找到了一些关于如何做到这一点的帖子,我正在一点一点地做到这一点。但此时我遇到了瓶颈。

根据 this post我应该创建一个新的托管 C++ 项目。我已经完成了,并且添加了对我应该包装的项目的引用。所以我的代码看起来像这样:

#include "stdafx.h"
#include "DrmWrapper.h"
#include "../OtherLibrary/drm/adept/src/adept_provider.h"

DrmWrapper::DrmWrapper(dpdrm::DRMProcessorClient * client, dpdev::Device * device)
{
adept::DRMProviderImpl * provider = new adept::DRMProviderImpl();
drm_processor_ = provider->createDRMProcessor(client, device);
}

unsigned DrmWrapper::initSignInWorkflow(unsigned workflows, const dp::String& authProvider, const dp::String& username,
const dp::String& password)
{
return drm_processor_->initSignInWorkflow(workflows, authProvider, username, password);
}

一切看起来都很好。但是当我尝试编译我的包装器项目时,出现错误:

d:\src\drm-wrapper\OtherLibrary\drm\adept\src\adept_provider.h(26): fatal error C1083: Cannot open include file: 'dp_all.h': No such file or directory

呃……什么?我不是要编译 adept 库。它本身已经很好地构建了。我只想编译我自己的包装器项目。 dp_all.h 文件确实存在,与 adept_provider.h 位于同一文件夹中。

很明显,我没有从 C# 到 C++ 进行范式转换;似乎正在重建代码,就像引用项目的源文件在我的项目文件夹中一样。

实现此功能的 secret 开关是什么?

最佳答案

您应该添加 ../OtherLibrary/drm/adept/src 作为您的项目查找头文件的地方之一(在 C++/General/Additional Include Directories 中)。

您应该将 #include "../OtherLibrary/drm/adept/src/adept_provider.h" 更改为 #include "adept_provider.h"

发生的事情是编译器正在寻找相对于您的项目而不是其他项目的 dp_all.h。编译在 C++ 中不是完全独立的,头文件在项目之间共享,并在使用它们的每个项目中重新编译。

关于c++ - Visual C++ 项目引用的新手帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52182095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com