Visual Studio /clr编译代码中本机方法的C++/CLI计算

0s0u357o  于 2023-03-31  发布在  其他
关注(0)|答案(1)|浏览(117)

考虑以下可以使用或不使用/clr编译的代码....当作为普通程序编译时(使用Visual Studio 209或2017或2022),则没有问题......但一旦使用/clr编译和调试,问题就会开始[注意这些“问题”100%与调试器有关,而不是代码问题.......
似乎只有托管调试器与监 windows 口和即时窗口一起使用,与本机相关的功能被禁用......

class Sample
{
public:
    int Foo();
    static void Bar();
};

//public ref class SampleEmitter
//{
//public:
//    static void Boing() { int x = 1; }
//    static System::String^ Emit(Sample s) 
//    { 
//        s.Foo(); 
//        return s.Foo().ToString();
//    }
//};

int Sample::Foo()
{ 
    return 42;
}
void Sample::Bar() { int x = 1; }

int main()
{
    Sample s;
    std::cout << "Hello World!\n";
}

编译时,可以在cout...上设置断点。并且可以将s.Foo()添加到wthe watch窗口中...它可以工作:)
现在添加/clr...和BOOM,它不再工作...但是,如果一个uncommts的SampleEmitter,可以wattched...。
那么如何在编译/clr时监视(评估)本机代码呢

bfnvny8b

bfnvny8b1#

C++CLI需要混合调试器类型。VS2022将自动设置为默认值。它应该可以工作。

相关问题