问题标签 [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.

0 投票
2 回答
6955 浏览

dll - 如何从托管 DLL 获取可执行路径

我有一个托管 DLL(用 C++/CLI 编写),其中包含 C# 可执行文件使用的类。在类的构造函数中,我需要访问引用 DLL 的可执行文件的完整路径。在实际的应用程序中,我知道我可以使用 Application 对象来执行此操作,但如何从托管 DLL 执行此操作?

0 投票
7 回答
32753 浏览

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

我需要根据可执行名称更改应用程序的功能。没什么大不了的,只是改变了显示的字符串和一些内部标识符。该应用程序是用本地代码和 .Net C++-CLI 代码混合编写的。

我研究过的两种方法是在 Win32 中解析 GetCommandLine() 函数并在 .Net 中填充 AppDomain 和其他内容。但是,使用 GetCommandLine 并不总是有效,因为从调试器运行时命令行为空。.Net AppDomain 的东西似乎需要很多东西。

那么在 C++/CLI 中确定可执行文件名称的最好/最简单/最有效的方法是什么?(我有点希望我错过了 .Net 中提供的一些简单的东西。)

编辑:我应该提到的一件事是,这是一个使用 C++/CLI 的 Windows GUI 应用程序,因此无法访问传统的 C 风格的 main 函数,它使用 Windows WinMain() 函数。

0 投票
3 回答
2169 浏览

.net - 在 C++.net 中将 ref 或指针作为参数传递给托管类型

我对此感到非常困惑 - 我知道如何在 VB、非托管 C++ 和 C# 中执行此操作,但由于某种原因,我不能接受 C++ 中托管类型的 ref 变量。我敢肯定有一个简单的答案,真的 - 但这是 C# 等价物:

我试过 C++ 指针 - 没有骰子。我试过 ref 关键字。没有骰子。我尝试了[out]关键字。没用。

我也找不到任何可以清楚地解释我的问题的文档。

0 投票
2 回答
2633 浏览

wpf - Windows 窗体 UserControl 覆盖未被调用

我正在创建一个从 UserControl 派生的 Windows 窗体控件,以嵌入到 WPF 应用程序中。我通常遵循此链接中给出的程序。

在我的 CPP 文件中:

一切都编译并运行,但是 OnPaint 方法永远不会被调用。

对要寻找的东西有什么想法吗?我用 C++ 做了很多,但对 WinForms 和 WPF 还是很陌生,所以它很可能是显而易见的......

0 投票
2 回答
3673 浏览

c++-cli - 是否有任何工具可以将托管 C++ 转换为 C++/CLI?

我们有一个使用托管 C++ 语法编写的旧项目。我想向团队提出一种合理无痛的更新方法(我不介意某种程度的人际互动,我认为我的期望是现实的,我们仍然必须手动完成一些工作)更新方法将现有代码转换为 C++/CLI 语法,以便我们还可以添加 XML 文档(该项目是其他项目的库,拥有文档将非常有用)。

那么,有什么好的工具可以帮助解决这个问题吗?还是只是切换到新的 C++/CLI 语法编译器并在我们进行时修复错误?

0 投票
8 回答
2069 浏览

c# - 你推荐 Native C++ 到 C++\CLI 的转变吗?

在过去的几年里,我一直是一名本地 C++ 程序员。现在我们从头开始一个新项目。那么您对以丢失平台无关代码为代价转向 C++\CLI 的想法是什么?转移到 C++\CLI 是否有任何特殊优势?

0 投票
2 回答
5573 浏览

delegates - 如何在 C++/CLI 中使用 boost::bind 绑定托管类的成员

我在本机 C++ 类中使用 boost::signal,现在我正在 C++/CLI 中编写一个 .NET 包装器,以便我可以将本机 C++ 回调公开为 .NET 事件。当我尝试使用 boost::bind 获取托管类的成员函数的地址时,我收到编译器错误 3374,说除非我创建委托实例,否则我无法获取成员函数的地址。有谁知道如何使用 boost::bind 绑定托管类的成员函数?

为澄清起见,以下示例代码会导致编译器错误 3374:

0 投票
3 回答
6778 浏览

c++-cli - 托管 C++/CLI 类中的 auto_ptr 或 shared_ptr 等效项

在 C++/CLI 中,您可以在托管类中使用本机类型,但不允许在托管类中持有本机类的成员:在这种情况下您需要使用指针。

这是一个例子:

有人知道 C++/CLI 世界中的 shared_ptr 等价物吗?

编辑:感谢您的建议,“1800-信息”。根据您的建议,我检查了 STL.Net,但它仅适用于 Visual Studio 2008,它提供容器 + 算法,但没有智能指针。

0 投票
6 回答
1104 浏览

c++ - C++ CLI 是 C++ 的超集吗?

C++ CLI编译器是否能够在不修改的情况下编译一些大型 C++ 类集?

C++ CLI 是 C++ 的超集吗?

0 投票
8 回答
1179 浏览

c++-cli - 如果支持像 C# 和 VB.NET,你会使用 C++/CLI 吗?

我一直喜欢 C++/CLI。也许是因为没有多少开发人员使用它......或者只是因为它不同。

假设 Microsoft 完全支持 C++/CLI,就像他们支持 VB.NET 和 C#(即 LINQ、WPF 等)一样。你会用吗?

如果不是,为什么?