在尝试从已经存在的DLL源构建用于Excel VBA的DLL时,我陷入了第一步 .

来源看起来像这样

using System;
using System.Runtime.InteropServices;
using System.Text;

namespace ZCon
{

    public class ZConsts
    {
        #if __MonoCS__
             public const string ZLibrary = "zcon.so";
        #else
             public const string ZLibrary = "zcon.dll";
        #endif
    }

    public class ZClient
    {

        [DllImport(ZConsts.ZLibrary)]
        protected static extern int WriteIt(IntPtr Client, int Len, byte[] Buffer);
        public int WriteArea(int Len, byte[] Buffer)
        {
            return WriteIt(Client, Len, Buffer);
        }

    }

}

我不完全确定与命名空间相关的'DllImport' .

程序集应该是COM可见的,Visual Studio注册COM interop . 现在我想用RegAsm.exe在另一个系统上注册它 .

我有Framework / v4.0 ...和Framwork64 / v4.0 ...,64位Windows和x86-Excel-2013 .

首先,我尝试了Target System:任何CPU和RegAsm.exe的注册仅适用于Framework64版本(“注册成功的类型”) .

RegAsm.exe ZConCOM.dll /codebase

也试过了

RegAsm.exe ZConCOM.dll /tbl:ZConCOM.tbl /codebase

现在我想在VBA编辑器中设置引用,DLL和TBL不会显示在Windows / system32中(通过'References'中的'Browse') .

在Visual Studio中使用x86作为目标系统的另一次尝试也失败了 .