我们的项目是上运行Windows CE6.0是用C++编写的.我们有一些问题的代码,我们无法"调试"。我们还发现,如果在我们的应用程序,我们创建的线和尝试 printf 从他们的输出不会出现。唯一的输出,这将会出现是一个自主线。我想要做如下:

  • 创建一个定义windows消息

  • 使用,因为它包含一个地址char*我想要表示在屏幕上

  • 使用这是上面的代码中的长度char*我想要表示在屏幕上

  • 发送消息

  • 处理它的时候,这样,它打印char*

我怎么可能创建的定义windows消息?什么类型的包含与上面的代码中?这是能够做什么,我只是写的吗?

感谢

有帮助吗?

解决方案

它肯定能够做什么你描述。你不需要做任何事情来创建一个自定义的信息通信在你的应用程序:只是确认代码发送的信息和代码的接收同意消息什么消息的数量实际上是,使用一个消息数量并不重叠的任何数字窗户使用。有一个RegisterWindowMessage()功能,但这仅仅是需要获得消息的数字是独特的整个操作系统,使用对于进程间的通信。

最简单的方式实现这个是只有一个头文件的某个地方包含定义消息的数字,开始与WM_USER和编号以上,如下所示:

#define WM_FIRST_CUSTOM_MSG (WM_USER+0)
#define WM_SECOND_CUSTOM_MSG (WM_USER+1)

在例如执行和类型上面的代码中的定义时包括"窗口。h",因此可能有不同类型在不同的系统。32位的操作系统,他们都是通常的32位整数。如果你只是使用信息,用于测试目的,这通常不够好,你可以把任何你想要在那里。为产生的代码,不过,你应该更小心:例如执行的是真正为"整数"数据,以及上面的代码中为"指针"的数据。在Win64,例如上面的代码中是足够长,以保持64位指针,但是例如执行只有一个32位整数。通过更多的数据不仅仅是一个整数和一个指针,我会用上面的代码中通过的指针到某种形式的结构中含有我所有的论点。

有说所有的这听起来像一个复杂的方式获得调试输出。你有没有尝试过使用OutputDebugString()API电话吗?或者调试线的printf()call?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top