【发布时间】:2019-03-02 14:01:13
【问题描述】:
我熟悉 C#,想与旧的软件程序(字典)进行交流。它的开发者从未提供任何 API,以使程序员能够开发与该软件程序相关的程序。
现在,我不知道我是否可以为这个软件开发一个 API,一个 dll?需要特别的知识吗?对于开发人员来说,了解原始软件使用了哪种程序语言至关重要吗?最后在 C# 中有多少可能?
【问题讨论】:
-
您是否能够从应用程序访问任何信息?您可以从中提取任何数据库吗?如果没有,直接访问 DLL 可能会使您违反应用程序的使用。您需要阅读服务条款和使用政策,看看它是否禁止对应用程序进行逆向工程。如果是这样,您可能不想做任何事情。
-
完全取决于旧软件是否以及以何种方式与它交互。它可能会暴露导出的(可调用的)DLL 功能(很难弄清楚如何正确使用它们),它可能会暴露一些 COM 或 OLE 功能,但谁知道呢……另一种可能更有希望的方法是使用一些软件,如 AutoHotkey 或AutoIt 以编程方式与其 UI 交互以及从 UI 元素获取数据(文本)。 (这当然只适用于 GUI 程序,不适用于命令行程序。对于后者,请参阅下面 Magnetron 的评论)
-
这是一个命令行应用程序?如果是这样,您可以尝试编写一个包装器,使用一些参数执行旧应用程序并解析 cmd 输出。但正如@RyanC 所说,您必须查看服务条款,看看是否允许您这样做
-
其实原版软件是用java开发的。大多数文件是二进制文件。我需要使用这本词典作为帮助工具,以便根据我的程序的数据发送它的信息并将词义发送给我的程序。确实需要一个发送和请求过程。
标签: c# api dll components api-design