case ID_SETTING_FONT:GetDrawFont(hWnd, gs_logFont, &gs_TextColor); break;
logFont
和 pColor
的用法体现了 C++ 中两种不同的参数传递方法:引用传递和指针传递
从某种角度来看,引用传递(如 LOGFONT& logFont
)和指针传递(如 COLORREF* pColor
)在效果上是相似的,尤其是在它们允许函数修改外部传入变量的这一点上。但是,它们在语法和某些语义上存在差异:
综上所述,虽然这两种方法在允许函数修改传入变量这一点上是相似的,但它们各有特点和适用场景。引用传递适合于必须提供的参数,而指针传递更灵活,适合于可选参数或可能不提供的参数。
但上述操作会创建一个全新的空文件,因此是不推荐的,如果选用用下面的WINDOWS桌面应用程序,代码框架会自动生成,如图
自动生成的框架界面如下图所示:
头文件和函数声明:头文件(通常是.h或.hpp文件)用于声明函数、类、变量等。声明仅仅是告诉编译器该函数的存在,其具体实现(定义)可以在别处。
源文件和函数定义:函数的具体实现(即定义)通常放在.cpp文件中。这个定义是函数声明的具体实现,包含了函数应当执行的具体代码。
包含头文件:当您在一个.cpp文件中包含了声明函数的头文件时,您实际上是在告诉编译器:这里有一些函数、类等的声明,请在编译时考虑它们。
链接过程:在C++中,当您编译一个项目时,编译器首先编译每个源文件(.cpp文件),将它们转换成对象文件(.obj文件)。然后,链接器将所有的对象文件和必要的库文件一起链接,生成最终的可执行文件。在链接过程中,如果一个.cpp文件中调用了另一个.cpp文件中定义的函数,链接器将负责找到这个函数的定义并正确地链接它们。
Visual Studio的工作方式:在Visual Studio这样的集成开发环境中,当您创建一个项目并添加多个.cpp文件时,它会自动处理编译和链接的过程。只要您正确地在一个.cpp文件中定义了函数,并在其他需要调用这个函数的.cpp文件中包含了相应的头文件,Visual Studio会在构建过程中自动找到并链接这些函数定义。
总结:在您的情况下,如果您在一个头文件中声明了函数,在一个.cpp文件中定义了它,并且另一个.cpp文件包含了这个头文件,那么只要这些文件都是同一个Visual Studio项目的一部分,Visual Studio会在编译和链接过程中自动处理一切,确保函数能被正确找到和使用。