有没有可能将一个简单的基于.exe的计算器工具转移到云上,供多用户使用



几年前,我们让一位程序员创建了一种用于音频行业的计算器。它是用C语言创建/编译的,是我们提供免费下载的.exe。一旦用户下载了它,他们就可以在本地运行它。

我们的目标是将该应用程序/计算器移动到";云;在这里,任何用户都可以假设访问URL,计算器就在那里,正在运行,并准备好由多个用户进行用户交互。

  • 我所描述的可能吗
  • 我需要Azure吗
  • 我在Azure中究竟需要什么(即哪些产品/资源)
  • 我需要使用编译/反编译版本吗
  • 我们需要更改.exe中的任何代码吗
  • 什么是我不知道的,我应该知道的

我真诚地感谢那些可能正在阅读这篇文章并充分理解它的简单性的人提供的任何和所有的意见,而我正努力理解它。

谢谢!

@亚历克斯,非常感谢你的回复。我很抱歉我回来晚了——家里有四个孩子——我真的不知道该怎么回答。这里有一个链接,指向我们提供给任何人的免费下载文件——它确实需要一封电子邮件,但这只是在版本更新时发出通知。https://caf.prosoundtraining.com/verify/这是该网站的主页:https://caf.prosoundtraining.com-它的工作原理是用户下载程序(这就是我们想要转移到云端的程序),然后输入各种值,根据扬声器的选择、电缆的长度、观众与扬声器的距离等来确定要使用的功率放大器,然后是允许用户通过放大器运行信号测试来可视化放大器性能的主程序。一旦用户下载了程序、计算器(在我的反编译版本中是单独的),他们就可以选择只使用计算器或完整的程序。

  • 我所描述的可能吗

好吧,如果您谈论的是纯命令行应用程序:是的。

但是,如果您谈论的是GUI应用程序:如果您的应用程序不能从命令行完全使用,请返回源代码并删除所有窗口、按钮、UI等。and使其从命令行使用。

  • 我需要Azure吗

任何云提供商都可以。根据交通情况,一台带互联网连接的旧笔记本电脑可能就足够了。

  • 我在Azure中到底需要什么(即哪些产品/资源)

具有公共可访问IP的Azure虚拟机。

  • 我需要使用编译/反编译版本吗
  • 我们需要更改.exe中的任何代码吗
  • 什么是我不知道的,我应该知道的

使用反编译版本(源代码):

WebAssembly

WebAssembly是一种可以在现代web浏览器中运行的新型代码——它是一种类似于程序集的低级语言,具有紧凑的二进制格式,运行时具有接近本机的性能,并为C/C++、C#和Rust等语言提供了编译目标,以便它们可以在web上运行。它还被设计为与JavaScript一起运行,允许两者协同工作。

Emscripten

将C和C++代码或任何其他使用LLVM的语言编译到WebAssembly中,并在Web、Node.js或其他wasm运行时上运行。

使用已编译的verison(可执行文件):

通用网关接口ish方法

公共网关接口(CGI)是一种接口规范,用于web服务器执行在动态生成网页的服务器上运行的控制台应用程序(也称为命令行接口程序)等程序。这种程序被称为CGI脚本或简称为CGI。服务器如何执行脚本的细节由服务器决定。在常见情况下,CGI脚本在发出请求时执行并生成HTML。

我的建议是使用python、PHP或您熟悉的任何脚本语言来启动Web服务器并根据传入的请求执行命令。

Python示例:

import subprocess
from flask import Flask
app = Flask(__name__)
@app.route('/calculator') # Accessible from http://[ipaddress]:[port]/calculator
def hello_RedPanda():
command = "..." # as if you are running your program from cmd.
result = subprocess.check_output(command) # execute given command
return result # to your web browser

完成所有后端填充后,您可以通过使用HTML、CSS和Javascript在客户端重建UI来重新添加按钮和选项卡。

在客户端构建UI实际上是容易的部分。在您的案例中,真正棘手的部分是(正如我上面提到的)从命令行使您的应用程序可用。

查看更多信息:

  1. WebAssembly

  2. Emscripten

  3. CGI-

  4. 与您的类似的案例

相关内容

最新更新