问题标签 [managed-code]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
3353 浏览

c# - WPF 应用程序应该用 C++/CLI 还是 C# 编写?

WPF 应用程序的核心是托管应用程序? 正确的? 因此,我必须在使用托管 C++ 或托管 C# 之间做出选择。几年前,我尝试过托管 C++。它似乎还没有为黄金时段做好准备。我猜微软在托管 C# 上投入了比托管 C++ 更多的努力。因此,似乎使用托管 C# 是两者之间的最佳选择。是这样吗?您在使用这两种语言的 WPF 方面有哪些经验?提前致谢。

0 投票
1 回答
174 浏览

c# - 托管和非托管

如果 .net dll 包含托管和非托管代码,代码将如何转换为 CIL 以及 CLR 如何分配和管理内存

0 投票
3 回答
44671 浏览

c# - 从 Delphi 调用 C# dll

我用单一方法编写了.Net 3.5 dll,由Delphi .exe调用。不幸的是,它不起作用。

步骤: 1. 使用代码创建 C# 3.5 dll:

  1. 转到 Assembly Properties --> Assembly Information 并检查“Make Assembly COM-Visible”
  2. 使用 RegAsm.exe 注册我的 dll

这会引发 Delphi 异常,表明它无法连接 dll。从非托管代码启用 C# 托管 dll 的使用需要哪些步骤。

有没有人熟悉这个主题的好例子?

谢谢

0 投票
1 回答
999 浏览

debugging - 托管代码的调试工具

我是 C# 新手,想知道“ windbg ”或“ Visual Studio Debugger ”是否是调试托管代码的更好工具?

在过去的几年里,我一直在使用 C++ 进行开发,与Visual Studio debugger相比,我更喜欢使用windbg。但是,我不确定windbg在托管代码的情况下是否也能发挥最佳效果?

除了windbgVisual Studio Debugger之外,是否还有其他调试工具在调试托管代码时比这些工具效果更好?

0 投票
2 回答
154 浏览

native-code - 托管代码真的有必要吗

我只是想知道托管语言相对于本机代码的真正优势是什么

可移植性: C#/Jave 需要每个平台都有一个 VM 实现,c++ 必须有一个编译器

垃圾收集器: 我们可以在 C++ 中有一个线程来检查内存分配/释放

反思:也许我们可以有一个与本机代码相似的机制(???)

今天托管代码已经获得了很大的普及,但是本机代码的优势通常是更高效,更轻巧,即:目标平台上没有VM。另一方面,据我所知,优势在于托管代码不是很大,我错了吗?托管代码是大多数应用程序遵循的好方法吗?

0 投票
4 回答
387 浏览

c# - 避免使用托管语言的分支

C中,当编译到 x86 机器时,我通常会用逻辑表达式替换分支,此时速度是最重要的方面,即使条件很复杂,例如,而不是

我会写:

现在很明显,这可能是一个更难维护且可读性更低的代码,但它实际上可能更快。

在使用托管代码(例如 C#)时,是否有任何理由采取相同的方式?托管代码中的“跳转”是否像在非托管代码中一样昂贵(至少在 x86 上)?

0 投票
1 回答
77 浏览

c# - 使用托管代码调用非托管的 MarshalAs 查询

这个问题是这个线程的结果。

我的问题是,为什么我们必须为某些参数指定 MarshalAs 属性而不为其他参数指定?我会认为 c++ 和 c# 数据类型之间的差异会大到足以需要编译器的指导?

请原谅我的无知,因为我以前从未处理过非托管代码:)

干杯,亚当

0 投票
2 回答
1857 浏览

c# - C# 中的本机代码?

我从去年 10 月开始观看 Microsoft 构建会议,我注意到他们宣布,为了构建新的 Metro 风格应用程序,开发人员可以使用 C# 编写本机代码。这怎么可能?我只是好奇。C# 不是设计为(作为 CLI 标准的一部分)首先编译为中间字节码,然后在虚拟机上运行吗?在虚拟机上运行的东西怎么能称为“本机代码”?

0 投票
1 回答
132 浏览

c++ - 如何在 vb.net 中非静态地使用本机 dll 中的代码?

我的问题更多是关于概念,而不是实际代码。

我在 vb.net 中有一个应用程序。出于各种原因,我想将一些类移植到本机 c++ 代码(不是 cli)。我想要做的是能够实例化和使用这些类,就像我在完全托管的应用程序中所做的那样。

我知道我可以从本机 dll 调用静态函数,但这里不是这种情况。我需要实例化类并在应用程序的整个生命周期中使用它们。

那么问题来了,这可能吗?如果是这样,你能指出我正确的开始方向吗?

0 投票
1 回答
2383 浏览

vb.net - 仅在调试时出现 VB.NET 套接字异常

我最近在将 VB.NET 解决方案从 VS2005 升级到 VS2010 时遇到了一些相当令人费解的行为。作为参考,该解决方案以 .NET 2.0 为目标,并且在转换之前在调试器中运行没有错误。除了 IDE 更改之外,公司还认为将我的设备从 Win XP (x86) 刷新到 Win 7 (x64) 是合适的。

现在我已经将解决​​方案转换为 VS2010,一旦调试器加载,我就会收到一个 Socket 异常(详情如下)。这只发生在调试器中。在其发布配置中构建解决方案会生成一个正确安装和运行且无错误的 MSI。

收到的异常详情如下:

真正令人困惑的部分是,这个异常是在我的单行代码执行之前生成的。Main 方法是通过 VB.NET(托管代码)生成的,我无法对其进行断点,在其中捕获错误(据我了解,由于内核/应用程序上下文切换),也无法对其进行符号调试。

一个可能的解决方法是针对另一个 .NET 框架版本,但是我真的很想了解为什么会发生这种情况。我不明白为什么这样的错误只会出现在调试器中而不是发布的代码中。而且,是的,我已经尝试重新启动机器以确保没有任何剩余的套接字仍在侦听,从而导致绑定失败。

提前感谢您的时间和帮助。