考虑以下可以使用或不使用/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时监视(评估)本机代码呢
1条答案
按热度按时间bfnvny8b1#
C++CLI需要混合调试器类型。VS2022将自动设置为默认值。它应该可以工作。