c++-cli相关内容

如何在 Release() 上处理 NET COM 互操作对象

我有一个用托管代码 (C++/CLI) 编写的 COM 对象.我在标准 C++ 中使用该对象. 当 COM 对象被释放时,如何强制我的 COM 对象的析构函数立即被调用?如果这不可能,请调用我的 COM 对象上的 Release() 调用 MyDispose() 方法? 我声明对象的代码(C++/CLI): [Guid("57ED5388-blahblah")][接口类型(ComInte ..
发布时间:2022-01-14 11:59:23 C#/.NET

无法跨 AppDomains 传递 GCHandle:没有委托的解决方案?

我有 C++ 基础库,客户端应用程序是 C#.有 c++/cli 接口可以从 C# 访问 c++ api.在没有像 NUnit 或 WCF 托管这样的多个应用程序域发挥作用(即使用一个应用程序域)之前,每件事都可以正常工作. 我已将托管对象存储在 cli 的 gcroot 中以供回调.我已经读到这是应用程序域问题的根本原因(“无法跨 AppDomains 传递 GCHandle"),因为它们 ..
发布时间:2022-01-14 11:52:00 C#/.NET

在 Windows 控制台中运行的游戏的 C++ 控件

我正在尝试制作一个在命令提示符下运行的小型 2 人游戏.在我开始研究玩家控制之前,一切都很好.因此,对于捕获键盘键,我认为最好的解决方案是使用 getch() 函数.那是因为 getch() 即时获取键,而不是在屏幕上显示它,等待输入或其他键被按下. 据我所知,实现这一点的代码相当简单: c=getch();开关(c){case 'a': 让玩家 1 向左走休息;case 'd': 让玩家 ..
发布时间:2022-01-13 22:41:12 C/C++开发

将文本框字符串转换为浮点数?

我基本上是在尝试在 Visual Studio 2008 中编写一个基本的转换器,我有 2 个文本框,一个用于获取用户的输入,一个用于输出结果.当我按下按钮时,我希望第一个文本框中的输入乘以 4.35,然后显示在第二个文本框中.到目前为止,这是我在按钮代码中的代码: String^ i1 = textBox1->Text;浮动 rez = (i1*4.35)ToString;textBox2- ..
发布时间:2022-01-13 11:48:47 C/C++开发

需要将 String^ 转换为 char *

我正在使用 .NET DateTime 来获取当前日期和时间.我将其转换为字符串以用作文件名的一部分.问题是保存图像的 OpenCV 命令需要 char * 而不是字符串类型,而 DateTime 只会输出 String^ 类型.我该如何进行这项工作?这里的代码没有完成 String^ nowString = DateTime::Now.ToString("yyyy-MM-dd-HH:mm"); ..
发布时间:2022-01-12 20:34:37 其他开发

如何将 System::String^ 转换为 const char*?

我正在用 C++/CLI 开发一个应用程序,并有一个非托管代码的 csv 文件写入库,我想从托管部分使用它.所以我的函数看起来像这样: bool CSVWriter::Write(const char* stringToWrite); ...但我真的很难将闪亮的 System::String^ 转换为兼容的东西.基本上我希望通过以下方式打电话: if(m_myWriter->Write(St ..
发布时间:2022-01-12 20:24:08 其他开发

C++ CLI System.String^ 到 MFC LPCTSTR

如何将系统 (.net) C++\CLI String^ 转换为 MFC C++ LPCTSTR 字符串. 将 LPCTSTR 放入 String^ 非常容易,但到目前为止还没有发现相反的方法. 解决方案 如果您有 Visual Studio 2008 或更高版本,您应该可以使用 C++/CLI 编组库来执行此操作,如下所示: #include 使 ..
发布时间:2022-01-12 15:11:47 C/C++开发

如何在 Windows 窗体应用程序中显示 MFC 控件?

我想创建一个 Windows 窗体控件,该控件显示一个 MFC 控件,例如 CIPAddressCtrl,具有工作的 Text 属性和 TextChanged 事件.如何在 Windows 窗体应用程序中显示 MFC 控件?如有必要,我很乐意使用 C++/CLI. 注意:我不是在问如何创建一个全新的窗体控件.我想在 Windows 窗体应用中托管旧版控件. 解决方案 这篇文章 提供了 ..
发布时间:2022-01-12 14:53:39 C#/.NET

将 HWND 转换为 IntPtr (CLI)

我的 C++ MFC 代码中有一个 HWND,我想将此 HWND 传递给 C# 控件并将其作为 IntPtr 获取. 我的代码有什么问题,我该如何正确处理?(我认为使用 CLI 指针有问题,因为我收到一个错误,它无法从 System::IntPtr^ 转换为 System::IntPtr.但我不知道如何让这一切正常工作...) 我的 C++ MFC 代码: HWND myHandle ..
发布时间:2022-01-12 14:48:06 C#/.NET

“LNK2022:元数据操作失败"让我发疯

我有一个包含很多项目的大型解决方案,使用 VS2008 SP1,并且每天至少遇到一次 LNK2022 错误.如果我完全重建解决方案,它构建得很好,但这并不好玩. 当依赖的 DLL 被“轻微"更改(即不更改任何方法或类)时会发生这种情况,并且稍后会构建引用项目.合并元数据时失败 - 不管这意味着什么. 首先要注意的是,共享 DLL 是通过多个 .CPP 文件中的 #using 引用的. ..
发布时间:2022-01-11 15:11:48 其他开发

VC2008,如何为 C++/CLI 项目中的单个文件关闭 CLR 标志

这篇文章 说可以关闭单个 .cpp 文件的 CLR 标志. 来自帖子:您可以在每个 .cpp 文件中单独设置/CLR 打开或关闭.开启它整个项目,.正如你所做的那样,然后关闭它的文件仅包含本机(非托管)代码.当您拥有 VC++ 项目时属性对话框打开,您仍然可以单击文件/项目解决方案资源管理器来更改您正在处理的范围.点击非托管 .cpp 文件,以便仅为该文件设置选项. 这是真的吗?我不知 ..
发布时间:2022-01-05 19:48:54 其他开发

“LNK2022:元数据操作失败";让我发疯

我有一个包含大量项目的大型解决方案,使用 VS2008 SP1,并且每天至少遇到一次 LNK2022 错误.如果我对解决方案进行完全重建,它会很好地构建,但这并不有趣. 当依赖的 DLL 发生“微不足道"更改(即不更改任何方法或类)并且稍后构建引用项目时,就会发生这种情况.合并元数据时失败 - 无论这意味着什么. 首先要注意的是,共享 DLL 是通过 #using 从多个 .CPP 文 ..
发布时间:2022-01-05 19:20:33 其他开发

为什么 WPF 设计器无法加载调用非托管 DLL 的库?

我使用的是 Visual Studio 2008、.NET 3.5 SP1,并且有一个包含以下模块的测试应用程序: 一个 C++ DLL 使用 #1 的 C++/CLI DLL 使用 #2 的 C# WPF 应用程序 当我尝试将 #2 中的类用作 WPF XAML 中的资源时,设计者不会让我: 错误是:“未找到程序集 'ClassLibrary1'.请确认您没有丢失程序集引用 ..
发布时间:2022-01-05 19:15:43 C#/.NET

是否有所有 SQL Server 2012 错误代码的概述?

SQLGetDiagRec 返回本机错误代码.有没有关于 SQL Server 2012 错误代码的概述?我在 MSDN 上找不到任何内容. 解决方案 我无法在 Internet 上找到各个代码的列表.但是我确实找到了严重级别的列表here 在 MSDN 上.它们如下: 严重程度/描述 0-9:返回状态信息或报告的信息性消息不严重的错误.数据库引擎不提升系统严重性为 0 到 9 ..
发布时间:2022-01-03 23:03:39 数据库

传递来自 C++ 的函数指针以供 C# 调用 - 函数参数包括宽字符字符串 (LPCWSTR)

我正在编写一个供本机 C++ 应用程序使用的 C# 库.我使用 C++/CLI 作为互操作性机制. 我需要将回调函数从 C++ 传递到 C#(使用 C++/CLI 作为中间层).C# 库需要使用以零结尾的宽字符字符串调用 C++ 函数;即回调函数的原型是 Func(LPCWSTR pszString); 还有其他参数,但它们对本次讨论无关紧要. 我在网上搜索并找到了我可以使 ..
发布时间:2022-01-03 08:36:05 C#/.NET

Visual Studio 2015 Windows 窗体应用程序中的 afxwin.h 问题

不久前我写了一个 C++ CLI Windows 窗体应用程序,它在 Visual Studio 2013 中编译得很好.现在我想在 Visual Studio 2015 Update 1 中重新编译它,但我遇到了一个问题,经过数小时的测试,我想罪魁祸首是afxwin.h. TL;DR - 有什么方法可以使用 stdafx.h(所以 afxwin.h 和所有其他导入) 在使用 Visual ..
发布时间:2021-12-30 18:08:38 其他开发