我最近一直在使用 Win32,但我对它很陌生,需要一些关于组织的建议。在 C++ 中,虽然在语法上声明全局变量是可行的,但我一直觉得这是草率的,因为变量可以在任何地方修改,因此跟踪对它的更改变得更加困难。
在我的 Win32 项目中,我有几个变量需要在多个地方进行修改。例如,一个这样的变量在 WndProc 函数和对话过程函数中。由于它的使用方式,我能够简单地使用 WndProc 中的实际值,然后使用 DialogBoxParam 调用对话框,并通过 lParam 值将值传递给对话框。
但是,还有其他值,例如我用于绘图的某些位图或在多个不同窗口消息调用中使用的变量,其中值需要在 WndProc 函数的多个实例或多个函数中保留。我可以控制我创建的函数的参数,但是如果我需要将一个变量传递给 WndProc 函数,以便我可以使用它而不考虑多个不同的窗口消息,该怎么办?如果我需要传入多个值怎么办?
到目前为止,我一直在将所有内容都设为全局,并且可以正常工作,但对我来说感觉很草率……但我知道,按照惯例,某些变量通常是全局的——比如主窗口和实例变量。
大家怎么看?