如何将C++ GDI代码转换为C#项目

问题描述:

我有两个项目,一个C#项目,其中包含我需要的所有内容以及一个具有控件和一些逻辑的GDI C++项目,我希望将其放入C#项目中。如何将C++ GDI代码转换为C#项目

作为控件以某种方式包装GDI C++项目吗?是否有一些更新的技术,我应该更新GDI代码使用(不知道如何GDI是不同于GDI +)。

刚开始看这个,不知道如何整合这两个。

+2

你还不知道要问一个有意义的问题。 C++代码使用GDI来实现绘画是一个不相关的细节,更重要的是它如何将其功能展示给其他代码。有多种方法可以做到这一点,比如RegisterWindowEx()或ActiveX,这是你首先需要关注的。 – 2014-10-18 13:12:20

+0

Hans,所以我会从C++代码创建一个dll,它有一个com接口(actives或registerWindowx)?然后导入该dll到我的C#项目中使用? – Maestro1024 2014-10-18 14:19:12

+1

您不一定需要使用COM,例如,您可以使用C++/CLI或P/Invoke进行集成。但是最好的方法取决于C++代码如何像Hans说的那样公开其功能,所以我们需要更多的细节来回答这个问题。 – 2014-10-18 14:43:54

它取决于你的C++代码的复杂性。如果它很大或很复杂,那么最好是将它包装起来并从c#中使用它(例如,将它包装在一个COM包装器中,或者甚至将它作为一个单独的进程运行,只需将其窗口显示在主机中。

如果它不太复杂,那么将它移植到c#可能会更容易和更简单。很多用于逻辑的C++代码很容易移植到c#,并且GDI和GDI +之间的差别很小,所以我希望移植到相当直截了当。

的决定因素可能就是你自己的信心,则使用COM或得到GDI +来呈现同样的事情。