vc++中的tagMSG和MSG和*PMSG有啥区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vc++中的tagMSG和MSG和*PMSG有啥区别?相关的知识,希望对你有一定的参考价值。

typedef struct tagMSG
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
MSG, *PMSG;

1、MSG,和*PMSG是两个结构体类型的别名,也即在使用typedef定义后的名字可以用他们来声明其他同类型的变量。其中:
MSG是声明结构体用的,声明的这个结构体变量类型与struct tagMSG声明的是一样的。
*PMSG是声明结构体指针,同样这个跟直接用struct tagMSG *也是一致的。
使用typedef的好处是增加程序可读性、移植性以及书写方便等。

2、比如有如下定义:
typedef usigned char uint8;
以后再需要使用无符号8位数据的时候,直接使用uint8声明就可以了。无需写那么多东西,并且一看就明白。
uint8 a;
参考技术A 上楼回答了一半。。
也可以说是 答非所问...
tagMSG 的意思是,只是一个标示符。
MSG 也只是一个标识符。
使用tagMSG 创建一个结构体。
MSG跟在后面标识的作用是 可以在函数中传递这个结构体,
*PMSG 也就是说 可以在函数中使用指针类型传递这个结构体。
也就是他的作用范围吧。本回答被提问者采纳
参考技术B 这有什么区别吗??
都是一个东西啊!!
就跟
typedef struct a

b,*c
一样的啊
最后一个是结构体指针而已

OpenCV 中的 vc10、vc11 和 vc12 库有啥区别?

【中文标题】OpenCV 中的 vc10、vc11 和 vc12 库有啥区别?【英文标题】:What is the difference between vc10, vc11 and vc12 libraries in OpenCV?OpenCV 中的 vc10、vc11 和 vc12 库有什么区别? 【发布时间】:2015-07-02 15:34:01 【问题描述】:

我使用的是 OpenCV 2.4.11,我有 2 个文件夹 x64 和 x86,它们都包含 vc10、vc11 和 vc12 文件夹,每个文件夹都包含带有库的 lib 文件夹。所有文件夹中的库看起来都差不多,只是大小上有一些细微差别。首先,x64 和 x86 文件夹有什么区别?其次,vc10、vc11和vc12库有什么区别?

【问题讨论】:

【参考方案1】:

对于 Microsoft 的 Visual Studio 编译器的每个版本,它们都是不同的版本。

vc16:Visual Studio 2019 打包的编译器 vc15:Visual Studio 2017 打包的编译器 vc14:Visual Studio 2015 打包的编译器 vc12:Visual Studio 2013 打包的编译器 vc11:Visual Studio 2012 打包的编译器 vc10:Visual Studio 2010 打包的编译器

【讨论】:

@Bowecho 可能不会。 :P 那么我们可以使用 vc12 旧库和 vc16 编译器吗??【参考方案2】:

它指的是用于构建的 Visual C++ 版本。 x64 和 x86 是 64 位和 32 位的芯片架构。

【讨论】:

我明白了,但是 32 或 64 架构中的 vc10、vc11 和 vc12 库有什么区别? Visual C++ 版本 我使用的是 Codeblocks 13.12,那么哪些库可以兼容?因为我使用的是 vc12 库,而编译器 (gnu gcc) 无法识别某些函数,例如读取图像时会出错。【参考方案3】:

指MS Visual Studio 版本https://en.wikipedia.org/wiki/Microsoft_Visual_Studio#History。

【讨论】:

以上是关于vc++中的tagMSG和MSG和*PMSG有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

在 wndproc 和 MSG 中处理窗口消息,有啥区别?

Java 中 给一个object 赋值属性, 既可以用构造函数的方式,也可以用setXXXX()的方式,而它们之间有啥区

arx20200306

MFC 键盘响应

下面代码中的 msg.sender 和 address(this) 有啥区别?

OpenCV 中的 vc10、vc11 和 vc12 库有啥区别?