Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   .NET-Framework (managed code) (https://www.delphipraxis.net/79-net-framework-managed-code/)
-   -   C# Dll-Funktion 2D Array ? (https://www.delphipraxis.net/178304-dll-funktion-2d-array.html)

madina 31. Dez 2013 13:24

Dll-Funktion 2D Array ?
 
Hallo,

ich habe ein dll (Borland C++), wo er ein 2D Array Daten liefert:
1.extern "C" MP5 Berechne(int iM, int iJ);

struct MP5
{
int iTMJ[5][12];
};

MP5 iTMJ;

MP5 _export Berechne(int iM, int iJ)
{
ArrayFüllung...
return(iTMJ);
}

2.C#:
public struct MP5 { public static int[,] iFelder = new int[5, 12];}

MP5 iTMJ;

[DllImport("my.dll", EntryPoint = "Berechne", CallingConvention = System.Runtime.InteropServices.CallingConvention.C decl, CharSet = CharSet.Auto, SetLastError = true)]
public static extern MP5 Berechne(int iM, int iJ);

Am Ende rufe ich die im DLL enthaltene Funktion auf und übergebe auch Daten:

iTMJ = Berechne(12, 2013);

Bei der letzten Zeile, wo ich die Funktion aufgerufen wird, stürzt er ab und die 2D Daten werden nicht dem iTMJ zugewiesen warum ?

MFG

DP-Maintenance 24. Apr 2015 05:53

Dieses Thema wurde am "24. Apr 2015, 06:53 Uhr" von "r_kerber" aus dem Forum "Neuen Beitrag zur Code-Library hinzufügen" in das Forum ".NET-Framework (managed code)" verschoben.

Blup 4. Mai 2015 17:03

AW: Dll-Funktion 2D Array ?
 
Zitat:

In C# sind Arrays tatsächlich Objekte und nicht nur adressierbare, zusammenhängende Speicherbereiche wie in C und C++.
https://msdn.microsoft.com/de-de/library/2z4khca9.aspx

Rückgabe der DLL ist eine Struktur mit 5*12 Elementen.
https://msdn.microsoft.com/de-de/library/zycewsya.aspx


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz