Анализ кода CLR C++ с помощью dotPeek

У меня есть этот код, написанный в CLR C++:

namespace NS{
public class B {
public:
    B()
    {
        int k = 1 + 1;
    }
    static int K;
    int getId()
    {
        return 0;
    }
    static double getId2()
    {
        return 0;
    }
};
}

Я компилирую его в dll и использую DotPeek, и я получаю такой результат:

namespace NS
{
[CLSCompliant(false)]
[NativeCppClass]}
[StructLayout(LayoutKind.Sequential, Size = 1)]
public struct B
{
}
}

А также с использованием отражения С# следующим образом:

var module = Assembly.Load("MyCLRCPP").Modules.First();
foreach (var data in module.GetFields())
{
  Debug.WriteLine(data.Name);
 }

Я получаю только какую-то тарабарщину:

__unep@?DoNothing@DefaultDomain@@@$$FCGJPAX@Z __unep@?_UninitializeDefaultDomain@LanguageSupport@@@$$FCGJPAX@Z

Мой вопрос: Почему там нет кода?


person MaLiN2223    schedule 28.12.2015    source источник
comment
[NativeCppClass] должен быть подсказкой. Ваш декомпилятор недостаточно хорош для понимания собственного кода C++, ни один из них. Как правило, они могут справиться только с ref class.   -  person Hans Passant    schedule 28.12.2015


Ответы (1)


Как сказал Ганс, есть проблема с декомпиляцией родного C++. Использование класса ref решило все.

person MaLiN2223    schedule 13.02.2016