我想知道如何从我自己的 C# DLL 创建一个 Com-Object。
我在 C# 中创建了以下类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace ProgressNet
{
[Guid("a9b1e34d-3ea3-4e91-a77a-5bcb25875485")]
[ClassInterface(ClassInterfaceType.AutoDual)]
[ComVisible(true)]
[ProgId("ProgressNet.Server")]
public class NetServer
{
public NetServer() {}
[DispId(1)]
public string GetString()
{
return "Some String";
}
}
}
在属性中,我检查了注册 COM 互操作。
然后我用 regasm 注册了 DLL。
regasm G:\ProgressTestApp\ProgressNet.dll /tlb:G:\ProgressTestApp\ProgressNet.tlb /codebase
然后我在Progress 4GL中尝试了这段代码:
DEFINE VARIABLE NetServer AS COM-HANDLE.
CREATE "ProgressNet.NetServer" NetServer.
MESSAGE NetServer:GetString().
但后来我得到“ProgressNet.NetServer 的自动化服务器未正确注册”..
有什么建议么?:)