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?