是否可以为没有任何 API 的旧软件程序开发 API?
Posted
技术标签:
【中文标题】是否可以为没有任何 API 的旧软件程序开发 API?【英文标题】:Is it possible to develop an API for old software programs which don't have any API? 【发布时间】:2019-03-02 14:01:13 【问题描述】:我熟悉 C#,想与旧的软件程序(字典)进行交流。它的开发者从未提供任何 API,以使程序员能够开发与该软件程序相关的程序。
现在,我不知道我是否可以为这个软件开发一个 API,一个 dll?需要特别的知识吗?对于开发人员来说,了解原始软件使用了哪种程序语言至关重要吗?最后在 C# 中有多少可能?
【问题讨论】:
您是否能够从应用程序访问任何信息?您可以从中提取任何数据库吗?如果没有,直接访问 DLL 可能会使您违反应用程序的使用。您需要阅读服务条款和使用政策,看看它是否禁止对应用程序进行逆向工程。如果是这样,您可能不想做任何事情。 完全取决于旧软件是否以及以何种方式与它交互。它可能会暴露导出的(可调用的)DLL 功能(很难弄清楚如何正确使用它们),它可能会暴露一些 COM 或 OLE 功能,但谁知道呢……另一种可能更有希望的方法是使用一些软件,如 AutoHotkey 或AutoIt 以编程方式与其 UI 交互以及从 UI 元素获取数据(文本)。 (这当然只适用于 GUI 程序,不适用于命令行程序。对于后者,请参阅下面 Magnetron 的评论) 这是一个命令行应用程序?如果是这样,您可以尝试编写一个包装器,使用一些参数执行旧应用程序并解析 cmd 输出。但正如@RyanC 所说,您必须查看服务条款,看看是否允许您这样做 其实原版软件是用java开发的。大多数文件是二进制文件。我需要使用这本词典作为帮助工具,以便根据我的程序的数据发送它的信息并将词义发送给我的程序。确实需要一个发送和请求过程。 【参考方案1】:首先,您必须弄清楚要从“旧”软件中公开哪些功能。然后创建一个包装软件功能的 C# REST api 应用程序。在这种情况下,您的 REST api 基本上将充当中间人。
【讨论】:
休息?只是为了一些旧软件和 C# 程序之间的接口?我正在尝试查找在“旧软件”短语下列出的字典/词库,例如“网络服务的同义词。也是一种茶树。”,但到目前为止我找不到...以上是关于是否可以为没有任何 API 的旧软件程序开发 API?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以将 AppStore 中的旧应用程序升级为全新的应用程序? [复制]