Если вы собираетесь упорядочить это вручную (т.е. импорт возвращает IntPtr), вы должны иметь возможность использовать
труктура в C ++ выглядит следующим образом
/* 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 */
Я использую XFoilResults, чтобы вытащить эту структуру обратно в C #
Моя инструкция по импорту DLL выглядит следующим образом:
[DllImport("xfoilapi.dll")]
public static extern void xfoilResults();
Это правильно? Я не имею никакого контроля над кодом C ++. Мне просто нужно иметь возможность вытащить структуру в C #. C # структура у меня до сих пор является следующим
[StructLayout(LayoutKind.Sequential)]
public struct xfoilResults
{
IntPtr pAlfa;
IntPtr pCL;
IntPtr pCM;
IntPtr pCDi;
IntPtr pCDo;
IntPtr pCPmax;
long nEntries;
}
Как я могу заполнить эту структуру C # данными из кода C ++?