2

独自の 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 Interop に登録するにチェックを入れました。

次に、DLL を regasm に登録しました。

regasm G:\ProgressTestApp\ProgressNet.dll /tlb:G:\ProgressTestApp\ProgressNet.tlb /codebase

次に、進行中の 4GL でこのコードを試しました。

DEFINE VARIABLE NetServer AS COM-HANDLE.
CREATE "ProgressNet.NetServer" NetServer.  
MESSAGE NetServer:GetString().

しかし、「ProgressNet.NetServerのオートメーションサーバーが正しく登録されていません」というメッセージが表示されます..

助言がありますか?:)

4

2 に答える 2

1

誰かがまだこれを読んでいる場合、答えは非常に単純であることがわかります: 次の行は間違っています。

MESSAGE NetServer::GetString().

そのはず

MESSAGE NetServer:GetString().
于 2013-03-20T15:34:03.810 に答える