C# 无法在php中调用com注册的dll函数

C# 无法在php中调用com注册的dll函数,c#,php,.net,com,dcom,C#,Php,.net,Com,Dcom,我已完成dll文件的com注册,它显示在注册表中(在命令提示符下输入regedit后获得) 如果我使用$obj1=new COM(“Encryptiondll.ClsEncryption”)我没有收到任何错误 但是当我试图访问一个方法(在.net中声明为公共字符串)时,我的php代码中出现了以下错误 致命错误:在第12行的C:\xampp\htdocs\test1\index.php中调用未定义的方法com::Encrypt12() 请帮忙 下面是我用来构造dll的c代码: 使用系统; 使用S

我已完成dll文件的com注册,它显示在注册表中(在命令提示符下输入
regedit
后获得)
如果我使用
$obj1=new COM(“Encryptiondll.ClsEncryption”)我没有收到任何错误
但是当我试图访问一个方法(在.net中声明为公共字符串)时,我的php代码中出现了以下错误
致命错误:在第12行的C:\xampp\htdocs\test1\index.php中调用未定义的方法com::Encrypt12()
请帮忙
下面是我用来构造dll的c代码:

使用系统;
使用System.Collections.Generic;
使用System.IO;
使用System.Linq;
使用System.Security.Cryptography;
使用系统文本;
使用System.Threading.Tasks;
命名空间加密DLL
{
公共类加密
{
公共静态void Main(字符串[]args)
{
}
公共静态字符串加密12(字符串明文)
{
ascienceoding textConverter=新的ascienceoding();
byte[]key=textConverter.GetBytes(“2a1c907916add59edffb3a4b”);
byte[]IV=textConverter.GetBytes(“00000000”);
字节[]clearData=Encoding.ASCII.GetBytes(纯文本);
字节[]cipherData=Encrypt1(clearData,密钥,IV);
返回Convert.tobase64字符串(cipherData);
}
公共静态字节[]加密1(字节[]clearData,字节[]密钥,字节[]IV)
{
MemoryStream ms=新的MemoryStream();
TripleDESCryptoServiceProvider tdes=新的TripleDESCryptoServiceProvider();
tdes.Mode=CipherMode.ECB;
tdes.Padding=PaddingMode.PKCS7;
ICryptoTransform alg=tdes.CreateEncryptor(密钥,IV);
CryptoStream cs=新加密流(ms、alg、CryptoStreamMode.Write);
cs.Write(clearData,0,clearData.Length);
cs.FlushFinalBlock();
cs.Close();
字节[]encryptedData=ms.ToArray();
返回加密数据;
}
}

}
您能分享一些代码吗?没有人会猜到你的C代码是什么样子的。我已经添加了我用来生成dllOk的代码,你有静态方法,COM对它们一无所知,因为.NET不会告诉任何关于它们的信息。为此,它们必须是实例方法。另外,您的类必须是COM可见的,但是从您在问题的前面给出的描述来看,我想它已经是了。