gpt4 book ai didi

c# - 用 C++ 编写控件以便 C++ 和 C# 程序可以使用它的最佳方法是什么?

转载 作者:行者123 更新时间:2023-11-27 23:26:24 26 4
gpt4 key购买 nike

我有一个用 C# 编写的自定义控件,我想将其移植到 C++,因为它太慢,而且我想在 C++ 程序和 C# 程序中使用它。

我看过 MFC Active X、ATL Active X 和 .NET C++。它们看起来都不必要地复杂。我真的很想避免使用 .NET C++,因为在 C++ 程序中涉及 .NET 似乎毫无意义。

此外,似乎没有任何关于编写活跃的 X 控件的好教程已经有十年了。

你们知道任何针对 Visual Studio 2008 的不错的 ActiveX 教程吗?

有没有其他方法可以在不编写 COM 组件的情况下实现我的目标。我可以只用 C++ 编写一个普通控件并将其粘贴到 DLL 中,并让 C++ 和 C# 程序都可以使用它吗?我不关心与 GUI 表单设计器的兼容性。

谢谢!

最佳答案

我原来的回答如下。我会把它留给处于类似情况的人。

If C# is slower than C++ for anything other than complex mathematics, you are doing something wrong. It should be near equal in speed, if not faster.

C++ inherently means making a GUI is going to involve lots of complexity, reinventing of the wheel, and old documentation. There is no avoiding it.

The fact that "involving .NET in a C++ program seems pointless" indicates to me that you know very little about the technologies with which you are working.

My answer: stick with C#, or you will be in over your head. Focus on optimizing what you have, not reinventing the wheel.

Edit: As Jeff Mercado said, if you do decide to take a native route, I wish you luck with your interop ventures.

根据您的评论,我仍然担心您不了解 .NET C++(最近被 C++/CLI 取代)所扮演的角色。我认为这可能是您的完美解决方案。例如,它允许您用 C++ 编写一个 ActiveX 控件(这是我目前推荐的),然后立即为其编写一个 .NET 包装器而无需离开 C++,而是使用相当大的 C++ 扩展。

还有一个补充:尽可能使用 Visual Studio 2010。 C++/CLI 是对其前身的巨大改进。至于 ActiveX,如果指南是旧的,请不要担心。它在过去十年中没有太大变化。

关于c# - 用 C++ 编写控件以便 C++ 和 C# 程序可以使用它的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9138062/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com