C_and_CPP 板


LINE

※ 引述《PythonScript (Python)》之铭言: : 手上有个第三方 MFC 主程式 可以写 .dll 的 plugin 档 : 主程式会自动载入变成按钮 : 第三方程式有个 class A 因为缺了一些属性 : 所以在第一个 plugin 中写了 class B : class A : 加了一些属性 最後产生了一个 vector<class B> : 现在的问题是 第二个 plugin 需要那一个 vector<class B> : 但是这个两个 .dll 档又是独立的 : 请问有什麽好方法吗? : 还是写一个 plugin 开出来的是 dialog : dialog 里面再自行去加按钮 : 这样是不是比较有机会可以交换资料 : 谢谢 来来回回看了好几次 还是觉得条件不够 也不知道你想干嘛 = = 我觉得这有几个问题你应该先解释清楚啦 1. 第三方MFC的plugin机制提供哪些功能? 我在猜啦,应该是让你继承特定的class 依照他的framework给定特定class的物件实体 达到你所说的自动新增按钮 我会想问的是 这个plugin能够知道主程式的哪些讯息?又能对主程式做哪些操作?能触发哪些事件? 2. 你想做的事情是什麽? 从你前半段的描述 我听起来是想要共用一个vector实例 但你後半段又说加按钮 所以我在想class B应该是按钮的derived class? 然後你想共用vector的原因只是因为想push_back(B())这样? = =a 你原文讲"产生vector<B>" 那到底是plugin持有 还是主程式实例化UI所call的function回传值? 你要交换的资料是什麽? 资料交换完是谁进行作业? (总不可能无聊到只是为了来回更新vector<B>吧) 所以说 不明的部分太多了 解法也会随主程式API设计而变 我觉得你乾脆把程式码改一改贴上来比较实在 我先从最蠢的可能解 讲到最简单的解 1. plugin开出socket让其他plugin去呼叫 超级无敌复杂 全公司只有你能维护 不可取代性up up 2. 假设主程式可以query UI的widget 其实你直接做强制转型 让plugin开出可以干涉该vector的method就好了 上面几个解法主要几个点 a) 持有vector<B>的人才应该去对vector<B>做实际的操作 其他人应当透过class介面间接地存取资料 b) 从设计观点来看两个plugin彼此认识的确很奇怪 但实务上的确可能会有这种鬼设计 问题是plugin彼此如何认识(透过主程式query? 透过全局的metaobject?) 而且这个命题会有plugin载入先後顺序的差别 c) vector会有ABI问题的话 那为什麽class B不会 c通常如果是自家公司都用同编译同环境同版本那是没差 但是如果你的class B真的可以简单描述的话 我会建议解法 3 3. 最无脑也是最好懂的做法 其实是你透过档案系统来操作 直接在APP专门的资料夹依时间为档名做存读 需要监听大不了做个timer触发 我是觉得你要解决的问题 搞不好根本不需要plugin彼此认识或分享变数 或者你的主程式的plugin能提供的机制比你想像的强 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.231.120.9 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1568154912.A.466.html
1F:推 PythonScript: 拍谢 等我可以更好的描述问题再来请教 09/12 17:52







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP