![]() |
Delphi DLL Schnittstelle zu C#
Ich habe eine Test-Schnittstelle von Delphi nach C# geschrieben.
Hier ist der Delphi Code der DLL:
Code:
Hier der C# Code:type ITest = interface ['{D032F796-167D-4B0D-851D-2AEEA226646A}'] Function GetTest : Integer; stdcall; Procedure SetTest(value : integer); stdcall; end; TTest = class(TInterfacedObject, ITest) public Function GetTest : Integer; stdcall; export; public Procedure SetTest(value : integer); stdcall; export; public Test: integer; end; Function TTest.GetTest() : Integer; stdcall; export; begin result := Test; end; Procedure TTest.SetTest(value : Integer); stdcall; export; begin Test := value; end; function GetTest() : TTest; stdcall; export; begin Result := TTest.Create; end; exports GetTest; end.
Code:
Wäre extrem dankbar, wenn sich jemand den Code durchlesen und auf Fehler überpfüfen könnte.
namespace WpfApplication1
{ public partial class MainWindow : Window { [ComImport, Guid("2B4AD756-C379-4BAB-9804-72E9A9E0B26F"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] public interface ITest { [MethodImplAttribute(MethodImplOptions.PreserveSig)] [return: MarshalAs(UnmanagedType.U1)] void SetTest(int value); [MethodImplAttribute(MethodImplOptions.PreserveSig)] [return: MarshalAs(UnmanagedType.U1)] int GetTest(); } public abstract class TTest : ITest { public abstract void SetTest(int value); public abstract int GetTest(); } [DllImport("Schnittstellen_1.dll", SetLastError = true, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Unicode)] public static extern TTest GetTest(); public MainWindow() { InitializeComponent(); } private void Window_Initialized(object sender, EventArgs e) { GetTest().SetTest(2); MessageBox.Show(GetTest().GetTest().ToString()); } } } Fehlermeldung in VisualStudio: In System.Runtime.InteropServices.COMException ist eine Ausnahme aufgetreten. Unbekannter Fehler(Ausnahme von HRESULT: 0x80004005(E_FAIL)) |
AW: Delphi DLL Schnittstelle zu C#
Was mir noch auffällt warum zwei unterschiedliche GUIDS für das gleiche Interface ??
ITest C# Guid("2B4AD756-C379-4BAB-9804-72E9A9E0B26F") ITest Delphi ['{D032F796-167D-4B0D-851D-2AEEA226646A}'] gruss |
AW: Delphi DLL Schnittstelle zu C#
Danke vielmals
Werd's später nochmals versuchen;D |
AW: Delphi DLL Schnittstelle zu C#
Könntest du mir eventuell noch den vollständigen Code schicken?
(Mit Deklarationen) Danke im Voraus TTF |
AW: Delphi DLL Schnittstelle zu C#
Zitat:
Verstehe nicht was du damit meinst. Meine Dll ist Closed Source abgesehen von ein paar Schnipseln daraus. Sorry. gruss |
AW: Delphi DLL Schnittstelle zu C#
Jetzt wo du deinen Source code herausgenommen hast kann ich es dir logischerweise nicht erklären. Ich habe ihn nicht abgespeichert.
|
AW: Delphi DLL Schnittstelle zu C#
Zitat:
Die kleine DLL und das WPF Projekt so das ich es mal hier kompilieren und ändern/ausführen kann. gruss |
AW: Delphi DLL Schnittstelle zu C#
Liste der Anhänge anzeigen (Anzahl: 1)
Cool danke!:thumb:
|
AW: Delphi DLL Schnittstelle zu C#
Zitat:
Zitat:
Zitat:
|
AW: Delphi DLL Schnittstelle zu C#
Liste der Anhänge anzeigen (Anzahl: 1)
Oh Entschuldigung
Hier ist das Projekt: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz