Thema: C# ComObject

Einzelnen Beitrag anzeigen

ZeraKakkade

Registriert seit: 3. Jun 2011
1 Beiträge
 
#1

ComObject

  Alt 3. Jun 2011, 12:17
Hallo

Ich versuche seit zwei Tagen eine C# Datei in Delphi 7 einzubauen doch scheitere kläglich.
Momentan versuche ich es über ComObject zu machen.

hier ist mein Test Code in C#

Delphi-Quellcode:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Reflection;


namespace testfordelphi
{
    [ComVisible(true)]

    [Guid("454F8365-58CA-4583-9991-5EF798997B73")]
    public interface IADDIF
    {
        void ShowHello();
        int Add(int i1, int i2);
    }




    [ClassInterface(ClassInterfaceType.None)]
    [Guid("60E14408-876F-4017-AF09-0131D8C82F5A")]
    public class Class1 : IADDIF
    {
        public int Add(int i1, int i2)
        {
            return i1 + i2;
        }


        public void ShowHello()
        {
            MessageBox.Show("Huhu");
        }

    }
}
Habe als Post Buildereignis
csc /t:library /out:sqlmanager.dll
ragasm sqlmanager.dll /tlb:sqlmanager.tlb

Wenn ich nun in Delphi die Typbibliothek importiere und die Klasse einbinde mit

Delphi-Quellcode:
procedure testsql();
  var intfRef: IADDIF;
  begin
    intfRef := CreateComObject(IID_IADDIF) as IADDIF;
    intfRef.ShowHello;
  end;
fliegt der in der Zeile
intfRef := CreateComObject(IID_IADDIF) as IADDIF;
raus und meint: EOleSysError Klasse nicht registriert.

nun ist mir aufgefallen, das in c# beim erstellen folgende warnung ist:
Warnung 2 "...bin\Debug\testfordelphi.dll" enthält keine Typen, die für COM-Interop registriert werden können. testfordelphi


Was kann ich machen damit ich die Funktionen in Delphi aufrufen kann?
Was mache ich falsch?
  Mit Zitat antworten Zitat