热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Protobufimport文件导入其他proto

有三个proto文件BaseProto.proto、MessageProto.proto和ServerProto.proto,文件内容如下:BaseP

有三个proto文件BaseProto.protoMessageProto.protoServerProto.proto,文件内容如下:

BaseProto.proto:

syntax = "proto3";
package BaseProto;message MsgBaseData
{...
}

MessageProto.proto:

syntax = "proto3";
package GameProto;
import BaseProto.proto; // 引入BaseProto.protomessage MsgWeaponSkillData
{int32 skillID = 1; int32 curExp = 2; int32 maxExp = 3;
}

ServerProto.proto:

syntax = "proto3";
package ServerProto.proto;message ServerWeaponData
{string guid = 1;int32 playerID = 2;string accountName = 3;int32 weaponID = 4;int32 weaponLv = 5;int32 slotID = 6;
}

ServerProto.proto中的ServerWeaponData需要添加一个字段,字段类型是GameProto.protoMsgWeaponSkillData
需要在ServerProto.protoimport GameProto.proto, 如下所示:

syntax = "proto3";
package ServerProto.proto;
import GameProto.proto; // 引入GameProto.protomessage ServerWeaponData
{string guid = 1;int32 playerID = 2;string accountName = 3;int32 weaponID = 4;int32 weaponLv = 5;int32 slotID = 6;GameProto.MsgWeaponSkillData skillData = 7; // 需要加上包名GameProto
}

如果还想使用BaseProto.proto中的MsgBaseData, 你不能因为ServerProto.proto引用了GameProto.proto, 而GameProto.proto又引用了BaseProto.proto,就可以直接在ServerProto.proto中使用BaseProto.proto的对象,这里不具有传递性,BaseProto.proto
ServerProto.proto中依旧不可见

有两种方法可以解决:


  • 在ServerProto中import BaseProto.proto
  • 在ServerProto中import public GameProto.proto

参考资料:
protobuf之导入其他proto文件


推荐阅读
  • 本文探讨了在Android平台下编写和读取.JSON文件的方法,解决读取文件时遇到的字符间异常空格问题。 ... [详细]
  • 本文通过一个具体的用户管理项目,详细介绍如何使用Spring MVC框架进行开发。从用户实体类的设计到控制器的实现,再到视图层的展示,全面解析Spring MVC的核心功能与实现细节。 ... [详细]
  • Shiro功能拓展:登录失败重试次数限制
    本文详细介绍了如何在Apache Shiro框架中实现对用户登录失败重试次数的限制,通过自定义密码匹配器来增强系统的安全性。该方法不仅能够有效防止暴力破解攻击,还能确保合法用户的账户安全。 ... [详细]
  • 本文详细介绍了Android平台上的动态加载技术,包括其定义、分类及具体实现步骤。通过动态加载技术,开发者可以在不更新应用的情况下,向用户推送新的功能或修复bug,从而提升用户体验。 ... [详细]
  • 应用程序配置详解
    本文介绍了配置文件的关键特性及其在不同场景下的应用,重点探讨了Machine.Config和Web.Config两种主要配置文件的用途和配置方法。文章还详细解释了如何利用XML格式的配置文件来调整应用程序的行为,包括自定义配置、错误处理、身份验证和授权设置。 ... [详细]
  • 本文深入探讨了Java注解的基本概念及其在现代Java开发中的应用。文章不仅介绍了如何创建和使用自定义注解,还详细讲解了如何利用反射机制解析注解,以及Java内建注解的使用场景。 ... [详细]
  • Java WebSocket 实时通信服务端实现
    本文介绍了一个基于Java的WebSocket实时通信服务端代码示例,包括客户端连接管理、消息接收与分发等功能。 ... [详细]
  • 本文档详细介绍了服务器与应用系统迁移的策略与实施步骤。迁移不仅涉及数据的转移,还包括环境配置、应用兼容性测试等多个方面,旨在确保迁移过程的顺利进行及迁移后的系统稳定运行。 ... [详细]
  • 快速排序是基于分治策略的一种排序算法,其平均时间复杂度为O(n log n),在大多数情况下表现优于其他排序算法。本文将详细介绍快速排序的工作原理,并提供一个Java语言的具体实现。 ... [详细]
  • Flutter 高德地图插件使用指南
    本文档详细介绍了如何在Flutter项目中集成和使用高德地图插件,包括安装、配置及基本使用方法。 ... [详细]
  • 本文章介绍了如何将阿拉伯数字形式的金额转换为中国传统的大写形式,适用于财务报告和正式文件中的金额表示。 ... [详细]
  • 设计模式笔记12:迭代器模式(Iterator Pattern) ... [详细]
  • 深入理解Hibernate延迟加载机制
    本文探讨了Hibernate框架中的延迟加载(懒加载)特性,分析其对程序性能的影响及实现原理,同时提供了具体的代码示例来说明如何配置和使用延迟加载。 ... [详细]
  • 本文档提供了几个经典的Java编程示例,包括多线程处理、基本程序结构以及简单的逻辑运算,旨在帮助初学者更好地理解和掌握Java语言的核心特性。 ... [详细]
  • 本文介绍了在 Unity 中通过勾选 Removable Storage 选项或在 Package.appxmanifest 中启用可移动存储选项,以实现 UWP 应用程序中的文件读写操作。同时,提供了使用 StorageFile 类进行文件处理的具体示例。 ... [详细]
author-avatar
南京展鸿物流_728
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有