php调用c#、c++写的com组件-创新互联

一、php调用c++非com组件 1.php打开扩展,我用的 php7.3.4nts

com_dotnet

创新互联建站专注于企业成都全网营销推广、网站重做改版、龙城网站定制设计、自适应品牌网站建设、H5技术商城网站制作、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为龙城等各大城市提供网站开发制作服务。2.下载dynwrapx.dll

php官方手册及网上很多使用dynwrap.dll去调用其他dll文件,但这个库已经停止开发了,网上另外有一个dynwrapx.dll(简称DWX)的库,是仿照dynwrap.dll开发的 DynamicWrapperX 中文,建议使用这个。

官网

下载最新版本

3. 放置文件

解压后将64文件下的dynwrapx.dll放到C:\Windows\System32,将32文件下的dynwrapx.dll放到C:\Windows\SysWOW64,然后以管理员身份打开cmd,执行 regsvr32 dynwrapx.dll

4.php调用
$dw = new COM("DynamicWrapperX");
$dw->Register("user32.dll", "MessageBoxW", "i=hwwu", "r=l");
$ch = $dw->MessageBoxW(0, "Hello, world!", "Test", 4);
echo $ch;die;

这里要注意:DynamicWrapperX不需要加入缓存中即可直接使用

参考官网给的案例

参考链接1

参考链接2

本人亲测
php 7.2.9、php 7.3.4、PHP 7.4.5这三个版本,用dynwrapx时不需要往php ext下添加扩展,也不用配置extension=dynwrap.dll即可直接使用
php7.3.6尚未成功!

二、php调用c++com组件

参考链接1

1.打开php扩展com_dotnet 2.php代码
add(1, 2);

这个功能是PHP调用COM组件的功能,虽然很方便调用,开发也比较简单,但也因为使用COM组件技术,限定了只有Windows的机子才能使用。

三、php调用c#com组件 1.php测试代码

这里是调用的windows自带的office dll文件

// starting word
$word = new com("word.application") or die("Unable to instantiate Word");
echo "Loaded Word, version {$word->Version}\n";

//bring it to front
$word->Visible = 1;
//
//open an empty document
$word->Documents->Add();
//
//do some weird stuff
$word->Selection->TypeText("This is a test...");
$word->Documents[1]->SaveAs("Useless test.doc");

//closing word
$word->Quit();

//free the object
$word = null;
2.php调用代码
$b = new com("HelloWorld.Hello");
$r = $b->Write();
echo $r;
3.添加到缓存中

c#代码

namespace HelloWorld
{ 
    public class Hello
    {
        public string Write()
        {
            return "Hello World";
        }
    }
}
gacutil /I HelloWorld.dll
regasm  HelloWorld.dll
4.上两行代码,我亲测是需要下载软件才可使用

需要对应的环境才可执行,而且要在根目录下执行

网上搜Visual Studio 2010 简体中文旗舰版

安装这个软件

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享题目:php调用c#、c++写的com组件-创新互联
URL分享:http://hbruida.cn/article/ccscjo.html