Mein struct in C starten ++ ist die folgendeIch versuche, eine Struktur von C auf C# Marschall, nicht sicher, wo
/* this structure contains the xfoil output parameters vs angle of attack */
typedef struct xfoil_outputdata_struct
{
double *pAlfa;
double *pCL;
double *pCM;
double *pCDi;
double *pCDo;
double *pCPmax;
long nEntries;
} XFOIL_OUTPUT_DATA;
/* Here are the function prototypes for XFoil */
__declspec(dllexport) XFOIL_OUTPUT_DATA *xfoilResults(); /* get output from xfoil */
I XFoilResults verwenden diese Struktur wieder in C#
Mein ziehen DLL Imports Anweisung ist die folgende:
[DllImport("xfoilapi.dll")]
public static extern void xfoilResults();
Ist das korrekt? Ich habe keine Kontrolle über den C++ Code. Ich muss nur in der Lage sein, die Struktur in C# zu ziehen. Die C# struct ich bisher habe, ist die folgende
[StructLayout(LayoutKind.Sequential)]
public struct xfoilResults
{
IntPtr pAlfa;
IntPtr pCL;
IntPtr pCM;
IntPtr pCDi;
IntPtr pCDo;
IntPtr pCPmax;
long nEntries;
}
Wie kann ich diese C# Struktur mit den Daten aus dem C++ Code zu füllen?
verwenden Was ist das Einsatzszenario? Wenn Sie sich eine extra DLL-Datei in Ihrer Anwendung leisten können, wird die Verwendung von C++/CLI für dieses Zeug Ihr Leben viel angenehmer machen. Sie kann die C++ - Struct-Definition direkt über #include verwenden, die C++ - Syntax zum Herausziehen der Daten verwenden und sie in eine Reihe von 'System :: Generic :: Collections :: List' oder .NET-Array-Objekten ('cli :: Array ') für die weitere Verwendung von C#. –