Как перевести класс на C++ в класс на С#? - C#

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

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

Доброго времени суток! Как перевести класс с C++ на C#? (Особенно интересует union)
struct asSFuncPtr
{
    asSFuncPtr(asBYTE f = 0)
    {
        for( size_t n = 0; n < sizeof(ptr.dummy); n++ )
            ptr.dummy[n] = 0;
        flag = f;
    }
 
    void CopyMethodPtr(const void *mthdPtr, size_t size)
    {
        for( size_t n = 0; n < size; n++ )
            ptr.dummy[n] = reinterpret_cast<const char *>(mthdPtr)[n];
    }
 
    union
    {
        // The largest known method point is 20 bytes (MSVC 64bit),
        // but with 8byte alignment this becomes 24 bytes. So we need
        // to be able to store at least that much.
        char dummy[25];
        struct {asMETHOD_t   mthd; char dummy[25-sizeof(asMETHOD_t)];} m;
        struct {asFUNCTION_t func; char dummy[25-sizeof(asFUNCTION_t)];} f;
    } ptr;
    asBYTE flag; // 1 = generic, 2 = global func, 3 = method
};
Лучше сразу показать, кодом заранее спасибо!

Решение задачи: «Как перевести класс на C++ в класс на С#?»

textual
Листинг программы
struct asSMethodPtr
{
    template<class M>
    static asSFuncPtr Convert(M Mthd)
    {
        // This version of the function should never be executed, nor compiled,
        // as it would mean that the size of the method pointer cannot be determined.
 
        int ERROR_UnsupportedMethodPtr[N-100];
 
        asSFuncPtr p(0);
        return p;
    }
};

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


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

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

13   голосов , оценка 3.769 из 5
Похожие ответы