gpt4 book ai didi

c++ - 如何用我的代码编译两个相似的头文件,以便在其上运行 2 个 DLL

转载 作者:太空宇宙 更新时间:2023-11-04 13:58:57 25 4
gpt4 key购买 nike

我有一个用 C++ 编写的应用程序。我必须在此应用程序中使用两个 DLL。

两个Dll是MitaiClient.dllMitaiDriver.dll。对于这两个 DLL,我都有 lib 文件和头文件。对于每个 DLL,我都有一对一的头文件,但它们都具有相同的名称 mtai.h。这两个头文件中声明的结构名称相同,但定义不同。

请建议我如何使用这两个头文件编译我的代码,以便我的应用程序可以同时使用这两个 DLL。

最佳答案

因此,例如您有 client/mtai.h

#pragma once

struct mtai
{
int clientData;
};

driver/mtai.h

#pragma once

struct mtai
{
int driverdata;
};

如果你同时包含这两个,你会得到一个错误,因为 struct mtai 被定义了两次。

要解决这个问题,你可以像这样强制包含到它们自己的命名空间中

namespace driver
{
#include "driver/mtai.h"
}
namespace client
{
#include "client/mtai.h"
}

然后在该命名空间中使用它们

例如

client::mtai dataClient;
dataClient.clientData = 42;

driver::mtai dataDriver;
dataDriver.driverdata = 1234;

关于c++ - 如何用我的代码编译两个相似的头文件,以便在其上运行 2 个 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20119934/

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