相关疑难解决方法(0)

PHP DOTNET地狱

我是PHP的新手,今天我发现了DOTNET类.
所以我学习了手册,浏览网页找到一些例子,最后编写了我的测试应用程序:

  1. 使用Framework 4.0 Client Profile创建了一个新的DLL
  2. 使用强名称密钥签署程序集
  3. 将标记的组件标记为COM-Visible

这是我写的测试代码

using System;

namespace CSharpCOM
{
    public class CSharpCOMClass
    {
        public string Base64(string s)
        {
            return Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(s));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我编译了程序集,然后在GAC(gacutil /if fullpath\CSharpCOM.dll)中注册.
如果我用gacutil /l CSharpCOM我看

拉高速双组装globale contiene GLI装配seguenti:
csharpcom,版本= 1.0.0.0,文化=中性公钥= beb607ae770f5750,ProcessorArchitecture用于= MSIL

Numero di elementi = 1

所以一切似乎都好.
然后写了这个基本的php:

<?php
try{
    $csclass = new DOTNET("CSharpCOM, Version=1.0.0.0, Culture=neutral, " .
                          "PublicKeyToken=beb607ae770f5750",
                          "CSharpCOM.CSharpCOMClass");
    echo $csclass->Base64("Test string"),"\n";
} catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n"; …
Run Code Online (Sandbox Code Playgroud)

.net php c#

8
推荐指数
2
解决办法
6082
查看次数

使DLL COM可访问

我有一个用.Net编写的类库,我想提供给VB6/VBA.我尝试过的东西不起作用(显然我在问这个问题).这是我做的:

  1. 我在Visual Studio 2010 Express中创建了一个类库项目,并将代码放在一个类模块中.
  2. 我打开项目属性并转到"装配信息"并选中"使COM可见".
  3. 我去了"高级编译"选项,并针对.Net 2.0(这是非常简单的代码).
  4. 然后我删除了所有期望的"系统".
  5. 我构建了项目(没有警告或错误)并将DLL从Bin文件夹复制到C:\ Windows\System32 \
  6. 我运行RegSvr32注册DLL并得到错误:

模块"MyDll.dll"已加载但未找到入口点DLLRegisterServer.

确保"MyDll.dll是有效的DLL或OCX文件,然后再试一次.

显然,我的第一次尝试有点天真.有人可以提供指导吗?

.net vb.net vb6 com vb6-migration

7
推荐指数
1
解决办法
8328
查看次数

标签 统计

.net ×2

c# ×1

com ×1

php ×1

vb.net ×1

vb6 ×1

vb6-migration ×1