是否可以让PHP与正在运行的C#Windows窗体应用程序进行交互?
之前我已经创建了COM Exposed DLL并使用DOTNET对象从PHP调用它们,但它似乎对我的“Windows窗体应用程序”不起作用。我是否需要制作COM DLL并以某种方式与Windows窗体应用程序进行交互?
修改
我决定在.NET3.5 Client Framework中编写一个快速EXE,看看这些方法是否可用于PHP。看来我现在正在运行方法,很棒!我想它只适用于v3.5客户端,而不是v4.5。
这是C#和PHP代码:
C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Example.Interop.FormText
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public int Sum(int a, int b)
{
return a + b;
}
public int Minus(int a, int b)
{
return a - b;
}
}
}
PHP
<?php
$app = new DOTNET("Example.Interop.FormText", "Example.Interop.FormText.Form1");
echo $app->Minus(19, 20);
?>
我没有经过测试,看看我是否可以运行与UI交互的功能。接下来会对它进行测试,但遗憾的是我不认为我可以在v3.5上为这个项目进行回溯。
答案 0 :(得分:1)
你想要的是这个:
我实际上是在15年前使用VB6程序做到这一点,它的工作方式与你说的完全一样!它有一个主要形式,我从ASP 3.0网站点击它。它有网站应用程序的内容,并作为管理员,但我没有问题更新UI或COM方法被解雇。
说明从下面的链接(由于问题的复杂性,没有它,这个答案是无用的;链接包括一个下载示例应用程序。如果链接死亡,也许你可以谷歌这个文本。)
在Microsoft Windows操作系统中,Microsoft COM技术使软件组件能够与其他软件组件进行通信。您可以使用Microsoft COM技术来创建可重用的软件组件。您还可以通过将这些组件链接在一起并利用Windows服务来开发应用程序 进程外服务器对象在可执行文件中实现,并在单独的进程空间中运行。