c++-cli相关内容

共享来自 C#、C++/CLI 和 C++ 的枚举

我有一个由三部分组成的库.首先是原生 C++,它提供了实际的功能.第二个是 C++ 库的 C++/CLI 包装器/适配器,以简化 C# 到 C++ 的转换.最后我有一个 C# 库,它通过 C++/CLI 适配器调用 C++ 库. 现在我有两组并行的枚举定义,一组存储在 .cs 文件中,另一组存储在 .h 文件中.这带来了双重问题: 我有双重维护.我必须始终同步两个文件位置中枚举的更改. ..
发布时间:2021-12-29 16:50:17 C#/.NET

包装 C++ 以在 C# 中使用

好的,基本上有一个大型 C++ 项目 (Recast) 我想包装以便我可以在我的 C# 项目中使用它. 我已经尝试这样做了一段时间了,这就是我目前所做的.我正在使用 C++/CLI 来包装我需要的类,以便我可以在 C# 中使用它们. 但是,我的 C# 项目中还需要大量的结构体和枚举.那么我该如何包装这些呢? 我现在使用的基本方法是向本机 C++ 代码添加 dllexport 调用 ..
发布时间:2021-12-25 16:22:41 C#/.NET

从 C++/CLI 调用 C# dll 函数

我有一个 C# dll.代码如下: 公共类计算{公共静态 int GetResult(int arg1, int arg2){返回 arg1 + arg2;}公共静态字符串GetResult(字符串arg1,字符串arg2){返回 arg1 + " " + arg2;}公共静态浮点获取结果(浮点 arg1,浮点 arg2){返回 arg1 + arg2;}公共计算(){}} 现在,我打算以这种 ..
发布时间:2021-12-25 16:12:54 C#/.NET

如何让我的托管 NuGet 包支持 C++/CLI 项目?

我制作了一个 NuGet 包,当我在 C# 项目中使用它时效果很好.它在 lib/net40 目录中包含一个 DLL,该 DLL 被添加为引用. 既然 NuGet 支持 C++,我该如何实际修改我的包,以便可以将 DLL 作为托管引用添加到 C++/CLI 项目中?我找不到任何解释这个的教程.如果我尝试按原样添加包,则会出现以下错误: 您正在尝试将此包安装到面向“Native,Vers ..
发布时间:2021-12-25 15:54:53 C#/.NET

本机 C++ 的 C++/CLI 包装器用作 C# 中的参考

标题解释.我有我正在为其编写 C++/CLI 包装器的本机 C++ dll,它们将作为参考导入到 C# 中. 问题是在 C# 中我看不到包装器中的类(从 DLL 导入). 我应该使用哪些关键字以及如何重新声明我的原生 C++ 对象以使其在 C# 中可见? 解决方案 好的,教程.您有一个 C++ 类 NativeClass 想要公开给 C#. class NativeClass ..
发布时间:2021-12-25 15:47:43 C#/.NET

在 C# 应用程序中使用 C++ 类 DLL

我有一个非托管 C++ DLL,它仅导出一个类(不是 COM...它只是一个简单的 C++ 类)作为其接口.我想在 C# 中使用这个类,但被告知它不能仅仅导入到 C# 中. 在我的 C# 应用程序中使用这个类的正确方法是什么? 解决方案 假设 class Foo 的简单方法: 创建一个 C++/CLI 项目,将其命名为 FooWrapper. 使 FooWrapper 依赖于 ..
发布时间:2021-12-25 15:42:39 C#/.NET

从 C++/CLI 项目创建纯 MSIL 程序集?

我正在尝试使用/clr:pure 和/clrimagetype:pure 标志从 C++/CLI 项目创建纯 MSIL 程序集,但是,输出程序集专门针对 x86. 我是否遗漏了任何可能阻止我的项目仅编译为 MSIL 的内容? 解决方案 您可以使用 C++/CLI 创建 AnyCPU dll,但在最简单的情况下,您将不能使用 MFC、ATL 或 CRT.但是,如果您只想在 C++/CL ..
发布时间:2021-12-22 18:46:38 其他开发

如何将 C# 和 C++ 程序集链接到单个可执行文件中?

我的 VS2008 解决方案包含一个项目,该项目生成一个 C# 可执行文件,该项目引用一个项目,该项目生成一个包含 C++/CLI 和非托管 C++ 的 dll. 我想将这些合并到一个可执行文件中,因为 C++ dll 包含我想嵌入到主可执行文件中的安全代码. 我无法使用 ILMerge,因为 dll 包含托管和非托管代码.建议的解决方案似乎是使用 link.exe 将 C# 程序集与 ..
发布时间:2021-12-22 18:46:25 C#/.NET

C++/CLI:公共引用结构生成 C2011:“类"类型重新定义

我在托管 DLL 项目中有一个头文件,如下所示: 枚举.h: #pragma once...公共引用结构 ManagedStruct {位图^图像;}... 这个头文件被 DLL 中的另一个类和一个单独的可执行文件引用.单独的托管结构正在生成: 错误 C2011:“ManagedStruct":“class"类型重新定义. 如果我将结构移动到 DLL 中的主头文件,它可以正常 ..
发布时间:2021-12-22 18:41:58 其他开发

静态初始化时的访问冲突

我正在使用 Windows 7 上的 Visual Studio 2015 开发一个应用程序.该应用程序有一个 C# 前端、一个 C++ CLR 包装器和 C++ 本机代码. 在使用 C++ 本机代码在函数范围内初始化静态变量时,我的应用程序因访问冲突而崩溃.但仅在 Windows Server 2003 Enterprise SP2 上,而不在 Windows 7 或 Windows Se ..
发布时间:2021-12-22 18:32:41 C/C++开发

在 C++/CLI 中,帽子字符 ^ 有什么作用?

我正在阅读 Ivor Horton 的 Beginning Visual C++ 2008 并且其中的许多 CLR 示例都对 main 有以下定义: int main(array ^args) 我一页一页地回到书的开头,找到第一个这样的例子,并解释了它的真正含义,但找不到. 显然它和标准的 int main(int argc, char *argv[]) 意思相同,但我想知道什么时候以及 ..
发布时间:2021-12-22 18:16:17 其他开发

如何持续更新 glut 窗口?

我有一个真正的机器人,它在 open gl 中订购我的虚拟机器人.我想在线显示我的主机器人(真实机器人)在从属机器人(open gl 中的虚拟机器人)中的每一个动作,所以我需要不断更新我的 glut 窗口,实际上只要真实机器人也移动我的虚拟机器人,所有这些运动应该在线. 我总是使用 get data 函数从 master 获取数据,但我不知道应该如何更新窗口. 这是我的代码: * ..
发布时间:2021-12-19 18:36:01 其他开发

如何在 WindowsC++/CLI 中获取应用程序可执行文件名称?

我需要根据可执行文件名称更改应用程序的功能.没什么大不了的,只是改变显示的字符串和一些内部标识符.该应用程序混合使用本机和 .Net C++-CLI 代码编写. 我研究过的两种方法是在 Win32 中解析 GetCommandLine() 函数并在 .Net 中填充 AppDomain 和其他东西.但是,当从调试器运行时,命令行为空时,使用 GetCommandLine 并不总是有效..Ne ..
发布时间:2021-12-17 23:39:42 C#/.NET

如何从本机 C++ 调用 C# 库(使用 C++\CLI 和 IJW)

背景: 作为更大任务的一部分,我需要使非托管 C++ 和 C 代码可以访问 C# 库.为了自己回答这个问题,过去几天/几周我一直在学习 C++/CLI. 似乎有许多不同的方法可以使用来自非托管 C++ 和 C 的 C# dll.一些简短的答案似乎是:使用 Interlope 服务,使用 .com.和 regasm,使用 PInvoke(似乎只是从 C# 到 C++),并在 C++/CLR(似 ..
发布时间:2021-12-14 18:40:56 C#/.NET

如何在 VS2012 中创建 C++/CLI Winforms 应用程序?

我刚刚为桌面安装了 Visual Studio 2012 express.我看不到任何地方可以用 C++ 创建 GUI 应用程序!Visual C++ 2010 中曾经存在过的“Windows 窗体应用程序"在哪里?这些拖放控件在哪里?我安装它是因为我得到了详细信息,告诉它支持 GUI 智能感知(VisualC++:无法从另一个类调用方法) 解决方案 这是一个明确的暗示,他们希望您停止创建 ..
发布时间:2021-12-08 13:18:32 其他开发

为什么 C# 不允许像 C++ 这样的非成员函数

C# 不允许编写非成员函数,每个方法都应该是类的一部分.我认为这是所有 CLI 语言的限制.但是我错了,我发现 C++/CLI 支持非成员函数.编译时,编译器会将该方法作为某个未命名类的成员. 这是 C++/CLI 标准所说的, [注意:CLI 将非成员函数视为某个未命名类的成员;但是,在 C++/CLI 源代码中,不能使用该类名显式限定此类函数.尾注] 未指定元数据中非成员函数 ..
发布时间:2021-12-07 23:22:53 C#/.NET

Windows Azure 找不到 C++/CLI 项目的 DLL

我有一个包含非托管 C 压缩库的 C++/CLI 项目,并且该项目被调用 C++ 压缩函数的 MVC3 项目引用. 本地一切正常,但是当我将解决方案发布到 Azure 云时,我收到一条错误消息,说找不到模块/dll: 无法加载文件或程序集“LZGEncoder.DLL"或其依赖项之一.找不到指定的模块. 为什么找不到DLL文件?它是去错了地方还是被编译了?有什么办法可以查吗?谢谢 ..
发布时间:2021-12-06 18:56:07 C#/.NET

C++/CLI 混合模式 DLL 创建

我有一个本机 C++ DLL,我想要一个 C++/CLI 包装层.据我了解,如果您简单地向项目添加 C++/CLI 类,VS 将编译为混合模式,但我显然错了,因为 VS 似乎甚至没有触及托管代码. 那么,给定一个预先存在的本机代码库,确切地,您是否需要逐步创建混合模式 DLL,以便我可以链接到该代码库来自任何 .NET 语言的代码? *我需要这样做,因为我的本机代码使用我无法 P/In ..
发布时间:2021-12-02 14:01:41 C#/.NET

C++/CLI 中的插入符号(‘^’)是什么意思?

我刚刚遇到了这段代码,在谷歌搜索中没有找到对这种神秘的(对我来说)语法的解释. Hashtable^ tempHash = gcnew Hashtable(iterators_);IDictionaryEnumerator^ enumerator = tempHash->GetEnumerator(); 插入符号到底是什么意思?(gcnew 对我来说也是新的,我在这里询问了这个问题.) ..
发布时间:2021-12-02 13:16:23 C#/.NET