c++-cli相关内容
我如何打电话从本机C ++(非托管code)一种.NET code?我要揭露.NET code到我的非托管(C ++)应用程序,然后使用它们。更具体地讲,我想打电话给C#从本地C ++ :)。我知道有很多方法,但你能告诉我每一个优点和缺点?顺便说一句,我不希望使用COM那么什么是选择现在? 难道我换用C ++ / CLI的C#code,然后从C ++调用它呢?如果是这样,我怎么做呢?我该如何
..
最近我们移植我们的WinForms的一个项目到Visual Studio 2012的Visual Studio 2008中的过渡又非常顺利,一切都建立得很好,但是我们现在用的WinForms设计师,这是运行慢得令人难以置信挣扎 要举个例子,如果我们打开一个小表格(表格包含两个文本框,一个数字上下按钮和两个按钮 - 所有的标准内置控件,没有任何第三方的),这将需要大约40-45秒2012年,但是在
..
我有一个C ++ / CLI组件(编译.NET 3.5与Windows 7)。 该组件被标记为标记有ComVisible特性(真)。它包含2类和1接口。这两个类都被标记为标记有ComVisible特性(假)所以他们不应该的问题。接口上标有 InterfaceType(ComInterfaceType :: InterfaceIsIUnknown)和特定的GUID。这个接口需要注册 当我尝试使用
..
我正与一些C ++ / CLI code(新语法),我试图声明一个泛型类型,并要设置一个成员变量到它的默认值。 在C#: Class类< T> { t。成员=默认(T); } 什么是等值的CLI? 通用< typename的T>公共引用类级 { 上市: 类别():成员(默认值(T))//< - 无worky { } 私
..
我如何申报C ++ / CLI有管理的方法,有一个可选的参数从C#中使用时? 我饰既是 C ++ / CLI:的 公开引用类MyClass1的 { 上市: MyClass1的([系统::运行:: InteropServices ::可选] [系统::运行:: InteropServices :: DefaultParameterValue(2)]
..
下面code编译有警告和智能错误: 引用类测试{ initonly静态时间跨度延迟时间跨度=(1,1,1); 测试() { 长长的蜱= Delay.Ticks; //<<问题 } }; 的问题是: 在警告C4395:'系统::时间跨度::蜱::获得“:成员函数 在initonly数据成员“测试::延迟”的副本,调用 智能感知:服
..
是否有可能使用新的lambda EX pressions在Visual C ++ 2010的CLR事件处理程序?我试过下面的code: SomeEvent + = gcnew事件处理程序( [](对象^发件人,EventArgs ^ E){ // code在这里 } ); 这将导致以下错误信息: 错误C3364:'系统::事件处理程序“:无效
..
有谁知道有没有简单的方法来转换一个CLI /。NET系统::数组到C ++的std :: vector的,除了做逐元素? 我在写一个包装方法(SetLowerBoundsWrapper,下同)在CLI / C ++,它接受一个系统::数组作为参数,并通过等价的std ::矢量一个本地C ++方法(set_lower_bounds)。目前,我这样做如下: 使用命名空间系统; 无效SetLowe
..
我读过许多非空的的问题和答案。它看起来像去接近非可空类型的C#(4.0)的最佳方式是全碟的非空<> 破解 但是,似乎C ++ / CLI已经解决了许多问题,通过支持托管引用:富%(而不是本地C ++ 富和放大器; )。编译器,使这项工作,加入 modreq(IsImplicitlyDereferenced)的说法。试图调用从C#的结果以这样一种功能: “<函数名>”不支持的语
..
什么是完全的“老”托管C ++和“新”C ++ / CLI之间的区别? 解决方案 托管C ++在VS2002和VS2003的版本。它有竞争条件和其他严重的错误,以及被混淆。它不再支持。 在VS2005中,微软引入了C ++ / CLI,这也被接纳为ISO标准。它也支持在VS2008和即将推出的VS2010。 他们两人有相同的目标,那就是创建一个使用C ++语言的.NET程序集。语法是不同的
..
现在我设置链接器/高级/ KeyFile中选择。 我收到的“mt.exe:一般警告810100b3:是一种强名称签名的程序集和嵌入清单的签名失效,您将需要重新签署该文件,使之成为有效的程序集。 “的。 从网上阅读,这听起来像我必须设置延迟签名选项,下载SDK,并运行SN.EXE作为后生成事件。当然,必须有一个更简单的方法来做到这一点共同的操作VS2010? 解决方案 有跛行了相当数量的在这
..
我偶然发现了这个code和我太自豪地去问作者是什么意思。 Hashtable的^ tempHash = gcnew哈希表(iterators_); IDictionaryEnumerator ^枚举= tempHash->的GetEnumerator(); 什么是 gcnew ,是多么重要它使用简单的新的,而不是? (我也难倒插入符号,我问那个在这里) 解决方案 gcn
..
我想用C#组件和C ++ / CLI组件的调试项目。 在C#中定义的接口由C ++ / CLI类,后者又调用本地C ++类继承。混合模式调试在C ++和C#程序集,以及启动.exe文件启用。 现在,当我尝试调试到C ++的一部分,它变得非常棘手;如果我简单地设置在C ++部分断点,他们不打(尽管我知道他们的打击,因为日志(等)写入,并抛出一个异常,这里居然将正确地把它)。 当我在调用混合模式
..
我在C碱基++库和客户端应用程序是在C#。有C ++ / CLI界面,从C#访问C ++ API的。每一件事情正常工作,直到多个应用程序域没有接触到类似的NUnit或WCF托管,即一个应用程序域的发挥。 在 我已存储的管理对象的 gcroot 在CLI回调。我已阅读,这是应用程序域问题的根本原因(“无法通过跨AppDomain的一个的GCHandle”),因为他们没有应用程序域信息(的 http
..
在C#中,我喜欢的 VAR 关键字这样的情况: VAR myList上=新的名单,其中,MyType的>(); 有没有在C ++ / CLI任何等价的,还是我要重复的类型名称每次只是这样的: 名单,其中,MyType的^> ^ myList上= gcnew名单,其中,MyType的^>(); 无法找到一个明确的声明在文档或谷歌至今。我使用的Visual St
..
我有一个库,由三部分组成。首先是原生的C ++,它提供了实际的功能。其次是一个C ++ / CLI包装/适配器的C ++库,简化了C#和C ++的过渡。最后,我有一个C#库,它通过C ++ / CLI适配器调用C ++库。 现在有我有两套平行的枚举定义,一是存放在cs文件和其他在.h文件。这就带来了一个双重的问题: 在我有双重维护。我必须在这两个文件中的位置同步枚举的变化。 在使用这两个枚举的
..
这是创业板中的一些互操作code,我们反编译创建。我们无法弄清楚如何创建这个数组的一个实例,也不是什么类型的数组。 看着 Type.GetElementType 给我,这是类型的数组双击,但我们不能弄清楚它是如何不同于 System.Double [] 。 解决方案 这是一个典型的互操作问题,该阵列在COM自动化服务器创建。这暴露了数组作为一个System.Double []数组是一个非常特
..
我没有看到任何真正的优势,比你有一个C ++语法,有了它,像指针和析构函数的事实等。 解决方案 如果你在谈论为什么要使用C ++ / CLI在C#中,我认为主要的原因是: 这可能是更自然的C ++开发人员(虽然我认为这可能是不正确的) 在C ++ / CLI具有非常好的能力弥合机和托管环境(使用'IJW“ - 它只是工作 - 技术) 我认为,香草萨特可能提供了最好的概述: 的设计原理对C
..
我是pretty的熟悉C ++,所以我认为学习.NET及其所有衍生物(特别是C#)。 一路上我碰到了C ++ / CLI的方式,我想知道是否有该语言的任何特定用途?难道仅仅是假设是一个中间语言从本地C ++转换为C#? 这突然出现到我头上的另一个问题是,为何仍有.NET Framework中这么多的编程语言? (VB,C ++ / CLI,C#...) 解决方案 是的,C ++ / CLI
..
我有一个函数解析一个字符串中成两个字符串。在C#我会宣布这样的: 无效ParseQuery(字符串toParse,出字符串搜索,出来的字符串排序) { ... } 和我这样称呼它: 字符串searchOutput,sortOutput; ParseQuery(userInput,出searchOutput,出sortOutput); 目前的项目必须在C ++ / CLI
..