问题标签 [c++-cli]
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.
generics - 为什么 C# 可以做到这一点而 C++/CLI 不能?
.NET Framework 3.5 附带所有 LINQ 好东西,还包括预定义的通用 Func 和 Action 委托。它们对于最多 4 个参数是通用的。我正在编写一个 C++/CLI 项目,该项目(不幸的是)使用 VS 2005,并且必须只依赖于标准的 2.0 程序集集(所以没有 System.Core)。
我尝试定义我自己的通用委托(在我自己的命名空间中),以使未来的端口更容易,通过编译器阻塞(多个定义)。有什么建议么?
arrays - 为什么“数组”在 Visual-C++ 中被标记为保留字?
Visual Studio 语法高亮将此单词着色为蓝色,就好像它是关键字或保留字一样。我尝试在网上搜索它,但是“数组”这个词会导致搜索失败,我得到的主要是解释数组是什么的页面。它是干什么用的?
c# - 使用原生 C++ 中的 .NET 类,使用 C++/CLI 作为“中间件”
我必须使用从本地 C++ 应用程序用 C# .NET 制作的类/程序集。我想我需要在 C++/CLI 中创建一个包装类,它将在头文件中公开本机方法,但根据需要使用 .NET 类。我不清楚的是如何将数据类型从 .NET 转换为标准 C++ 类型。
有人有一些示例代码可以学习吗?
我发现的唯一文字是:http: //msdn.microsoft.com/en-us/magazine/cc300632.aspx
但是文本很旧(使用托管 C++,而不是 C++/CLI),而且很多事情还不清楚
c# - 强名称验证失败
两台机器。.NET 3.5 和 VS 2008 VC++ SP1 可再发行组件
一个使用两个签名 DLL 的单个 exe,一个在 C++/CLI 中,一个在 C# 中
exe 在一台机器上加载并运行良好。
另一方面,我在 C++ 可执行文件(HRESULT 0x8013141A)上得到“强名称验证失败”
有任何想法吗?
.net - modopt 和 .NET 反射
我有一个 CLI/C++ 接口,我想通过 .NET Reflection 进行检查。这是源代码中的函数签名:
以下是在 .NET Reflector 中检查该函数时的样子:
有没有办法通过 .NET 反射获取 modopt 属性,还是必须使用元数据非托管 API?
.net - InternalsVisibleTo 不适用于托管 C++
InternalsVisibleTo 不适用于我的托管 C++ 项目,但适用于我的 C# 项目。任何帮助,将不胜感激。这是一个简化的布局。
项目A - C#,有一个我想从B/C访问的内部属性。
项目B - 托管 C++。参考文献A。
项目C - C#,引用A。
所有项目都使用相同的密钥进行签名。查看使用 ILDASM 或 Reflector 编译的程序集表明它们都已正确签名(当我注释掉内部属性使用时)。
在项目A 的AssemblyInfo.cs 中,我有以下 InternalsVisibleTo;
键是剪切粘贴的,所以我知道它们是正确的。
当我尝试编译时,A & C编译正常,但项目B失败
MSDN 文档说这适用于 C++。是否有错误或其他我需要做的事情?
是否有另一种方法可以保护财产,使其只能由我签名的程序集使用?我知道我可以保护我所有的程序集,但是我可以像这样在粒度级别上做到这一点吗?
编辑
根据 MSDN 中的评论,我将属性更改为以下,但这仍然不起作用。
c# - 本机类是否可以使用 .NET 事件?
知道如何初始化指向“混合”类实例中的方法的 .NET 委托吗?
我有这样的“混合”C++ 类:
DotNetClass 是用 C# 实现的,方法声明可以使用委托。此行生成错误:
有人对问题有线索吗?也许因为 CppMixClass 类不是纯 .NET (ref) 类?
当 UpdateHealthState 是静态方法时,我让它工作,但我需要指向实例方法的指针。
我尝试过:
但这显然不起作用,因为这不是指向 .NET (ref) 类 (System::Object) 的指针(句柄)。
ServiceStateEventHandler 在 C# 中定义为:
感谢您阅读本文:)
events - 从 C++/CLI 引发事件的正确方法?
我想知道从 C++/CLI 引发事件的正确方法是什么。在 C# 中应该首先制作处理程序的副本,检查它是否不为空,然后调用它。C++/CLI 有类似的做法吗?
c++-cli - 您如何处理 C++/CLI 中的句柄?
我知道我问的也不对。请帮助我更好地提出我的问题。
我有点难以将注意力集中在句柄上——在某些方面,它看起来像指针。但与指针不同,似乎我可以直接将值分配给句柄变量,它会影响底层数据值,而不是句柄本身。
测试代码清楚地表明,无论我使用句柄还是“取消引用”句柄来获取数据,我都会得到相同的值。显然,这不适用于非托管指针。我不明白什么?
编辑添加——我怀疑 WirteLine 可能已经为我完成了取消引用,但我预计静态转换不会长。这也与自动拆箱有关吗?
c++ - Silverlight 和 C++ 或 C++ 到 C# 的代码转换正在进行吗?
我正在开发一个基于绘图的产品,我想按优先顺序为 iPhone、桌面 OS/X、Windows 平板电脑、基于 Silveright 的浏览器、Windows Mobile 和 Windows 制作版本。
对于 GUI 可移植性,经典的答案是将核心保留在 C++ 中并使用 Cocoa/Objective-C 或 WPF/C# 薄层。
但是,Silverlight 使选择复杂化。
将我的代码迁移到 C++/CLI 并维护双重代码库(使用一些宏来伪造 C++/CLI 上下文关键字以及一些司法搜索和替换 ^ 和 %)我不会有任何问题。
从到目前为止我所能找到的情况来看,Silverlight 似乎不太可能支持 C++/CLI。这让我有以下选择:
- 一次性将 v1.0 C++ 源代码库迁移到 C# 并持续进行并行维护
- 使用工具(请提供建议!)从 C++ 到 C# 进行实时移植,反之亦然,这非常顺利,可以成为构建过程的一部分。
- Silverlight 版本的架构分离,因此 C++ 逻辑保留在服务器上。我对性能影响有点不舒服。
任何人都可以提出替代方案,提供有关 Silverlight 中 C++/CLI 的好消息或推荐移植工具吗?只要端口可靠,我对任何一种语言都足够熟悉,可以将 C++ 或 C# 作为后端的主要语言。
编辑:查看Tangible Software Solutions提供的产品范围,他们对转换器的注释清楚地表明,将 C# 转换为 C++ 比其他方式更容易。这正如我所料 - 它引发了将我的 C++ 风格限制为最不常见的 OO 分母的有趣想法。