AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

C# C++ dll array einlesen ?

Ein Thema von madina · begonnen am 10. Jan 2014 · letzter Beitrag vom 16. Jan 2014
Antwort Antwort
madina

Registriert seit: 1. Nov 2005
153 Beiträge
 
#1

C# C++ dll array einlesen ?

  Alt 10. Jan 2014, 09:18
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
mfg
madina
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#2

AW: C# C++ dll array einlesen ?

  Alt 12. Jan 2014, 14:16
So könnte es gehen (Rückgabetype 'IntPtr' ):
Code:
[DllImport(...)]
public static extern IntPtr Berechne(int iM, int iJ);

...
 IntPtr ptr = Berechne(12, 2013);
 MP5 mp5 = (MP5)Marshal.PtrToStructure(ptr, typeof(MP5));
  Mit Zitat antworten Zitat
madina

Registriert seit: 1. Nov 2005
153 Beiträge
 
#3

AW: C# C++ dll array einlesen ?

  Alt 15. Jan 2014, 08:58
Hallo,

leider führt zu keinem Datenempfang.

MFG
mfg
madina
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#4

AW: C# C++ dll array einlesen ?

  Alt 15. Jan 2014, 12:36
Probiere mal, die Adresse zu übergeben:
Code:
*MP5 _export Berechne(int iM, int iJ)
 {
 ArrayFüllung...
 return(@iTMJ);
 }
  Mit Zitat antworten Zitat
madina

Registriert seit: 1. Nov 2005
153 Beiträge
 
#5

AW: C# C++ dll array einlesen ?

  Alt 16. Jan 2014, 13:06
Hallo,

sollte diese Änderung in der my.dll passieren ?

MFG
mfg
madina
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:53 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