Импорт функций из DLL - C# (213578)

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Необходимо импортировать библиотеку, написанную на с. Прочитал msdn и google. Например, в код С++
long int mapGetRscObjectNameInLayerEx(long int hRsc,  long int layer,   long int number,  char * name, long int size);
Я переведу в C#
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);
Как такое объявить в C#?

Решение задачи: «Импорт функций из 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; 
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5