none
VC和C#,我如何让它们互相协助? RRS feed

  • 问题

  • 1)如果编写基于CLR的VC++程序,能否再去操纵内存一类的不安全代码?

    2)我认为CLR就是托管代码,这正确吗?

    3)因为我原来是大量应用C#的,所以我不能随便新建内存和释放内存,我写的所有代码都是被托管的;如果要写不安全代码,还得标记。那么,在使用.net框架时,VC++还能够操纵内存(比如像指针这一类东西)?

    4)如果我用VC++2005写了一个非托管的DLL,那么怎么才能让C#来引用?如果C#不能引用,那我要如何修改这段VC++?(这里的平台是VS2005以上的环境)

    2010年9月6日 15:11

答案

  • 1)可以

    2)不正确,C++/CLI可以支持非托管代码。

    3)C++/CLI托管代码不能直接访问内存

    4)可以引用,添加Import属性。但要注意变量类型。


    麻烦把正确答案设为解答。
    2010年9月7日 14:08
    版主
  • 您好,

    对于你的第二个问题,应该这么理解:

    CLR是一个运行时环境,支持众多的数据类型和语言特性。

    由CLR执行的代码就是托管代码,当然,不是由CLR执行的代码就是非托管代码。

    2010年9月9日 2:04
    版主

全部回复

  • 1)可以

    2)不正确,C++/CLI可以支持非托管代码。

    3)C++/CLI托管代码不能直接访问内存

    4)可以引用,添加Import属性。但要注意变量类型。


    麻烦把正确答案设为解答。
    2010年9月7日 14:08
    版主
  • 您好,

    对于你的第二个问题,应该这么理解:

    CLR是一个运行时环境,支持众多的数据类型和语言特性。

    由CLR执行的代码就是托管代码,当然,不是由CLR执行的代码就是非托管代码。

    2010年9月9日 2:04
    版主