我有一个用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表单设计者的兼容性。
谢谢!
答案 0 :(得分:4)
我原来的答案如下。我将把它留给类似情况的人。
如果C#比C ++慢于复杂数学以外的任何东西,那么你做错了。它的速度应该接近相等,如果不是更快的话。
C ++本质上意味着使GUI变得复杂,重新发明轮子和旧文档。没有避免它。
“在C ++程序中涉及.NET似乎毫无意义”这一事实向我表明,您对与您合作的技术知之甚少。
我的回答:坚持使用C#,否则你就会陷入困境。专注于优化你所拥有的,而不是重新发明轮子。
编辑:正如杰夫·梅尔卡多所说,如果你决定采取本土路线,我希望你们的互操作能够好运。
根据您的评论,我仍然担心您不了解.NET C ++(最近被C ++ / CLI取代)所扮演的角色。我认为这可能只是你的完美解决方案。例如,它允许你用C ++编写一个ActiveX控件(这是我现在推荐的),然后立即为它编写一个.NET包装器而不需要离开C ++,而是使用相当大的C ++扩展。
又一个补充:尽可能使用Visual Studio 2010。 C ++ / CLI是对其前辈的巨大改进。对于ActiveX,如果指南老了,请不要担心。它在过去十年中没有太大变化。