2014-02-13 45 views
0

我用C++控制台编程开发了通信程序,它是完整的并且工作正常。现在,我需要更改我的代码以实现实时目的,我需要使用以前的代码并进一步添加并生成.avi电影(最可能是使用BMP图像)。我们可以有控制台和win32 C++的命令和功能互换吗?

事情是这样的,因为我明白,电影只能用win32 C++生成而不是控制台编程?

因此 1.我可以在win32编程中使用相同的代码(必要时更改课程)以及我在控制台编程中使用的API吗?

  1. 我可以走相反的路,即在win32 C++中制作电影生成代码,并且以后包含在控制台程序中。如果是的话,有什么想法?

任何其他想法也明显

+1

作为控制台程序意味着程序继承对其父控制台的访问,或者创建自己的控制台。它似乎并没有限制程序完全使用Win32 API的任何其他部分。 –

+0

@Jerry Coffin:确实;控制台应用程序可以很好地使用Win32 API的其余部分。 –

回答

1

有到Win32编程和“控制台”编程没有什么区别 - 你可以在同一时间同时使用。唯一的区别是你使用的主要入口函数(最常见的主要是WinMain)。因此,如果可以更轻松地调整控制台应用程序,请不要麻烦设置新项目。

事实上,控制台应用程序甚至可以创建窗口,而基于窗口的应用程序也可以创建自己的控制台。 Win32 C++和控制台C++没有任何区别(除了我提到的主要入口函数以及用于沟通输入和输出的惯用方法)。

+0

感谢您的回复。但例如一些语句,例如printf()是最常见的不适用于基于Windows的系统(除非我们调用控制台,之后我想它会,但还没有尝试)以及类似的其他语言。我认为viceversa也是一样的 – Kashan

+0

控制台应用程序可以调用'MessageBox'就好 - 确保'#include '。关于'printf':它写入进程的标准输出,该输出显示在控制台上。所以如果这个过程没有控制台,你必须先做一个控制台。使用[AllocConsole](http://msdn.microsoft.com/en-us/library/windows/desktop/ms681944%28v=vs.85%29.aspx)在非控制台应用程序中为您提供控制台,以及使用[freopen](http://support.microsoft.com/kb/58667)将'printf'写入该控制台(如'freopen(“CON”,“w”,stdout);')。 –

相关问题