Autor Beitrag
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: So 21.12.08 17:06 
Nein, ich habe mich nicht im Forum verirrt und nein, ich kann auch kein C#, aber ein Problem hab ich trotzdem :mrgreen:

Ich habe eine OpenSource-Library für C# gefunden, die in .NET geschrieben ist. Ich muss diese DLL in Delphi verwenden, da bleibt mir auch keine andere Wahl. Nun sind aber bisher alle Versuche, die DLL für COM vorzubereiten fehlgeschlagen. Meistens endeten die Versuche bei Delphi mit "Klasse nicht gefunden". Die Library besteht aus mehreren Dateien und sieht z.B. so aus:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
namespace NKH.MindSqualls
{
    public partial class NxtBrick
    {
        /// <summary>
        /// <para>Constructor.</para>
        /// </summary>
        /// <param name="serialPortNo">The COM port used by the Bluetooth link</param>
        public NxtBrick(byte serialPortNo) : this()
        {
            commLink = new NxtBluetoothConnection(serialPortNo);
        }

        /// <summary>
        /// <para>Connect to the NXT brick.</para>
        /// </summary>
        /// <seealso cref="CommLink"/>
        /// <seealso cref="Disconnect"/>
        /// <seealso cref="IsConnected"/>
        public void Connect()
        {
            [...]
        }
    }
}


Soweit ich bisher weiß, muss ich den Source mit dem Parameter /t:Library zu einer DLL kompilieren und anschließend mit RegASM zur Typenbibliothek umwandeln. Ich bin mir aber nicht sicher, wie ich den Source ändern muss, damit das auch alles klappt. Momenten exportiert RegASM scheinbar noch keine Funktionen.

Hat das schonmal jemand gemacht? Wenn das nicht ganz so einfach ist, könnte ich mir auch vorstellen, ein neues C#-Projekt anzulegen, welches auf die Funktionen zugreift und dadurch eine normale (nicht .NET-)Dll anzulegen, die mit Delphi aufrufbar ist.

Grüße
GTA-Place

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)