Импорт функций из DLL - C# (213578)
Формулировка задачи:
Доброго времени суток.
Необходимо импортировать библиотеку, написанную на с. Прочитал msdn и google.
Например, в код С++
Я переведу в C#
Но что если в качестве передаваемого параметра идет сложная структура? Например:
С++
Как такое объявить в C#?
long int mapGetRscObjectNameInLayerEx(long int hRsc, long int layer, long int number, char * name, long int size);
public static extern int mapGetRscObjectNameInLayerEx(int hRsc, int layer, int number, string name, int size);
typedef struct tagPALETTEENTRY {
BYTE peRed;
BYTE peGreen;
BYTE peBlue;
BYTE peFlags;
} PALETTEENTRY;
typedef struct PALETTE256
{
WORD palVersion;
WORD palNumEntries;
PALETTEENTRY palPalEntry[256];
}
PALETTE256;
int** SomeFunc(const char * name, PALETTE256** somearg, const PALETTE256 * palette);Решение задачи: «Импорт функций из DLL»
textual
Листинг программы
using System;
using BYTE = System.Byte;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential)]
public struct tagPALETTEENTRY
{
public BYTE peRed;
public BYTE peGreen;
public BYTE peBlue;
public BYTE peFlags;
}