作者largesperm (Ferric)
看板C_and_CPP
标题[问题] MFC 与 Python 互通
时间Sat Nov 3 12:36:30 2018
公司买了一个绘图引擎
是 MFC 写的 没有 source code 只有 API
(如果有得选 打死也不选 MFC)
目前要做的是 用 MFC 写 plugins
主程式会自动载入 plugins
问题来了 我原本是写应用的 非底层 用 Python 跟 C#
也非 CS 出身 压根不懂 C/C++/底层/回收/记忆体管理等等
有尝试着学 MFC 但是进度实在是太慢了
光是处里档案路径的字串字元就搞死我了
更何况本来就要做的东西还是要继续做 那来的美国时间
最近听同业以前专门写 MFC 的前辈说
有工具可以自动产生 API 让 Python 或 C# 语言来处理
别浪费生命在 MFC 上
现在科技这麽发达 难道没办法用 Python 或 C# 来处理吗
请问有关键字可查询吗 感谢
EDITED
这篇跟我遇到的状况好像是一样的
https://goo.gl/HU2MfU
都是有个主程式 但是要写的是 plugins
plugins 要 dllexport 特定方法 主程式才会主动载入
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.33.11.247
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1541219793.A.B8D.html
※ 编辑: largesperm (114.33.11.247), 11/03/2018 12:38:19
1F:→ feeya: VS的C/MFC应该可以包成lib给C#使用 11/03 13:05
※ 编辑: largesperm (114.33.11.247), 11/03/2018 15:20:04
2F:推 layan: Google SWIG 11/03 15:58
看了一下 SWIG 酷!
我大概描述一下 主程式我不用动 我要写的是 plugin
plugin 必须要 dllexport 特定方法
主程式就会自动载入该 plugin 并在主程式的选单多一个按钮出来
按下按钮的时候 就会去执行其中一个特定方法
所以这样看起来一定得要有一个 MFC dll 的外壳在
但是我实际的操作过程是写在 Python 或 C#
那这样要怎麽把东西塞到 MFC dll 中
两边又要得是互动的 例如
MFC 呼叫 Python 要去解压缩某档案
Python 解压缩完要回丢解压缩完的档案位置给 MFC
※ 编辑: largesperm (114.33.11.247), 11/03/2018 16:16:47
3F:推 jass970991: 我比较好奇 你写c#但不懂记忆体管理? 11/03 22:23
4F:→ largesperm: 可能是因为我写的都是 plugins 吧 没有特别注意记忆 11/04 00:06
5F:→ largesperm: 体这件事情 就直接写了 效能不好再来查那边用的时间 11/04 00:06
6F:→ largesperm: 多 再下去改 写久了就知道那些写法不好 11/04 00:06
7F:→ largesperm: GC 在背後可能就默默帮我做了许多事情了 11/04 00:14
8F:→ uranusjr: 听起来你要的是颠倒, 因为主程式是 MFC, 你要挂 Python 11/04 18:34
9F:→ uranusjr: 这样你要的应该是做出一个 Python.dll 的 MFC wrapper 11/04 18:35
10F:→ largesperm: 有道理 感谢解惑 11/05 11:45
11F:→ Zephyr750: Google: python call C API by Boost 11/08 08:29
12F:→ feeya: 其实有简易作法 C#跟python之间用socket沟通就好啦 11/08 13:11