TeamTalk初学笔记3---关于win-client【第二篇:入口文件_头文件】

研究一个应用程序的源码,我们常常会从它的第一个窗口:登陆界面开始研究。至少我个人就比较喜欢从程序启动的瞬间,第一时间执行的那个函数开始着手。

选中解决方案,右键—>属性—>启动项目,可以看到当前选中的是单启动项目:teamtalk。C++的英文名字就是cplusplus,简写:cpp。这下可以知道入口文件必然是同名文件:teamtalk.cpp了,寻找一番,就可以找到,如下图位置:

文件的物理路径:\win-client\src\teamtalk\文件夹下面。

既然入口已经找到,接下来这篇博客,我们就单单分析一下这个入口文件吧。

我们知道,每一个.cpp都伴随有一个.h头文件;之所以在 C++ 中要使用头文件,最主要的原因是 C++ 的同一个项目可能有多个源代码文件,要命的是这些源代码是分别单独编译的。也就是说,在编译其中一个文件时,编译器并不知道其它文件中定义的内容,如类、全局变量等。这就要求我们必须在要使用某个类、函数或变量的每个文件中声明它,否则 C++ 是无法找到它的。

所以,我们就先来讲讲teamtalk.h这个头文件的内容吧:

一、#pragma once  //仅编译一次

编译器预编译命令:仅编译一次;用途:常出现在头文件中。因为同一头文件会在许多源文件中多次引用。如果没有指定编译一次,则编译时出现重定义错误。

相同作用命令:
#ifndef ABC_H
#define ABC_H
//头文件代码内容*******
#endif

二、#ifndef __AFXWIN_H__

#error "在包含此文件之前包含“stdafx.h”以生成 PCH 文件"

#endif

#ifndef是宏定义的一种,它是可以根据是否已经定义了一个变量来进行分支选择。

#error命令是C/C++语言的预处理命令之一,当预处理器预处理到#error命令时将停止编译并输出用户自定义的错误消息。

三、这里不难理解到,先要加载stdafx.h这个头文件(标准系统包含文件的包含文件、经常使用但不常更改的或是特定于项目的包含文件)

有个小细节值得一提,一般#include “”里面的都是自定义的头文件,而#include <>里面的头文件则是系统盘里面的例如:#include <afxwin.h>。

四、其他注解如下图:

关于TeamTalk-Client入口文件的头文件篇就到这里吧,接下来又要去搞个Abap报表去咯。。。

时间: 2024-08-24 18:14:24

TeamTalk初学笔记3---关于win-client【第二篇:入口文件_头文件】的相关文章

TeamTalk初学笔记4---关于win-client【第二篇:入口文件teamtalk.cpp】

#include "stdafx.h" #include "teamtalk.h" #include "UI/MainDialog.h" #include "GlobalConfig.h" #include "versioninfo.h" #include "google/protobuf/stubs/common.h" #include "utility/utilCommon

TeamTalk初学笔记2---关于win-client【第一篇】

        为了直观的修改TT客户端页面,我花了很多时间在网上寻找UIDesigner设计工具.最后实在是找不到了,就找了同事帮忙,他climb over the wall(这个词都成敏感词汇了?博客里居然不准用)之后终于帮我下载到了. 以下是Duilib的一些网址,很多都需要climb over the wall后才能访问. 官网: www.duilib.com 论坛: bbs.duilib.com qq群: 153787916(1群),79145400(2群),1507570(3群) g

解剖SQLSERVER 第二篇 对数据页面头进行逆向(译)

解剖SQLSERVER 第二篇  对数据页面头进行逆向(译) http://improve.dk/reverse-engineering-sql-server-page-headers/ 在开发OrcaMDF 的时候第一个挑战就是解析数据页面头部,我们知道数据页面分两部分,96字节的页面头部和8096字节的数据行 大神 Paul Randal 写了一篇文章很好的描述了页头结构,然而,即使文章描述得很详细,但是我还是找不出任何关于页头存储的格式 每一个字段的数据类型和他们的顺序 我们可以使用DBC

TeamTalk初学笔记

1.图像处理:采用CxImage图像操作类库,它可以快捷地存取.显示.转换各种图像:(暂时没找到在哪使用了) 一.win-client: 1.解析参数:采用jsoncpp: 示例:登陆msg_server服务时候从config.dat中取配置信息; 2.界面:从XML中获取控件等UI界面是用的Duilib界面库画出来的: 示例:登陆界面的tipText框,提示内容取自:chinese.ini 3.日志:yaolog记录日志:格式:LOG__(szLogID, szFormat, ...); 示例

初学cocos2d遇到的问题,VS找不到 源 文件(头文件)

如果VS找不到源文件或者头文件,就是你添加的类/*.h/*.cpp的路径没有加进该项目里的“附加包含目录”里. 第一步:用VS打开项目 第二步:对着项目右键,“属性”. 第三步:然后按照顺序按 “配置属性” --> “C/C++” --> “常规” .效果图如下 第四步:点击“附加包含目录”-->“<编辑>” 第五步:在我的选定的位置,双击,可以直接输入一些字符,而这些字符,代表着一些数据(包含路径),而这些字符该怎么输入?我们就要参考网上的资料(以下资料是网络资料,感谢分享

第二篇、常用的分类文件

1.NSDate(获取时间格式) import UIKit extension NSDate { class func dateWithStr(time: String) ->NSDate { // 1.将服务器返回给我们的时间字符串转换为NSDate // 1.1.创建formatter let formatter = NSDateFormatter() // 1.2.设置时间的格式 formatter.dateFormat = "EEE MMM d HH:mm:ss Z yyyy&qu

第二篇 Fiddler配置_浏览器&amp;手机

么是Fiddler? 网络项目的开发和测试中,Fiddler是强大的抓包工具,它的原理是以web代理服务器的形式进行工作的 ,可以说是非常常用的手头工具了,本文就Fiddler使用和配置进行说明. 代理就是在客户端和服务器之间设置一道关卡,客户端先将请求数据发送出去后,代理服务器会将数据包进行拦截,代理服务器再冒充客户端发送数据到服务器:同理,服务器将响应数据返回,代理服务器也会将数据拦截,再返回给客户端 了解HTTP协议 要分析Fiddler抓取的数据包,先要熟悉HTTP协议.HTTP即超文本

OpenGL学习系列第二篇

在这个教程里,我们一起来玩第一个OpenGL程序.它将显示一个空的OpenGL窗口,可以在窗口和全屏模式下切换,按ESC退出.它是我们以后应用程序的框架. 在CodeBlock里创建一个新的GLUT Win32程序(不是console控制台程序)后,我们还需要链接OpenGL库文件. 代码的前4行包括了我们使用的每个库文件的头文件.如下所示: #include <windows.h>// Windows的头文件 #include <glew.h>       // 包含最新的gl.

C语言笔记之头文件与链接(一)

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"><span style="font-size:18px;">虽然一直在用#include命令包含头文件,但其实一致不太明白头文件的原理.今天就研究了一下.</span></span> 首先,在大型项目中,仅仅一个源文件是不够的,巨大