vc++/c++/mfc学习
zebra_zzh
博客中涉及到的代码请移步我的Github主页下载
https://github.com/ZhangZhiHao233/
展开
-
MFC使用的OpenURL下载网页数据必要时要去除缓存
MFC用OpenURL获取网络摄像头数据时,发现程序运行期间每一次获取的结果都一样,而实际上结果数据已经改变了。只有重新运行才能获取最新结果,因此考虑到可能后面读取到的都是第一次的缓存。解决方法:修改函数第三个参数为INTERNET_FLAG_TRANSFER_ASCII|INTERNET_FLAG_RELOAD,强制重新获取结果。file = (CHttpFile*)sessio...原创 2019-05-28 11:18:13 · 752 阅读 · 0 评论 -
实现一个三维矢量库,完成矢量之间的加减、点乘,叉乘
#include <stdio.h>#include <iostream>using namespace std;class vector{public: vector(float x = 0, float y = 0, float z = 0); void input(); void show(); void jaf(vector &v1, ...转载 2017-04-05 16:23:00 · 2006 阅读 · 0 评论 -
读取两数之间的质数并统计个数(默认0—100)
//类声明#ifndef FUNCTION_H_#define FUNCTION_H_class Prime{public: Prime(); ~Prime();private: int nCount; //存放质数的个数public: void Search(int nStart = 0, int nEnd = 100); //搜索函数,默认值为0-100};#e...原创 2017-04-05 16:34:34 · 634 阅读 · 0 评论 -
比较两文件中相同的字符,并存入第三个文件
#include "stdafx.h"#include <iostream>#include <stdlib.h>#include <fstream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){ ofstream outfile3; ifstream readfile1; ...原创 2017-04-05 16:37:50 · 725 阅读 · 0 评论 -
windows编程几个响应函数介绍
原文地址:LRESULT CALLBACK WndProc();作者:梦想天空//一、消息处理函数 LRESULT CALLBACKWndProc();//二、应用程序主函数int WINAPI WinMain () Windows程序是事件驱动的,对于一个窗口,它的大部分例行维护是由系统维护的。每个窗口都有一个消息处理函数。在消息处理函数中,对传入的消息进行处理。系统内还有它自己的...转载 2017-04-05 21:33:19 · 414 阅读 · 0 评论 -
关于进程和线程
最近在了解socket编程以及数据库,其中涉及到进程和线程的概念。这个概念比较难懂,况且我不是计算机专业,因此百度了一下,看到一个形象的易于理解的解释,下面贴出网址吧!http://www.ruanyifeng.com/feed.html感谢博主!...原创 2017-04-05 21:33:44 · 199 阅读 · 0 评论 -
关于this指针的一个形象介绍
(编程中又遇到困难了,this指针,下面是今天看到的一个回答,与大家分享!)关于this指针的一个经典回答:当你进入一个房子后,你可以看见桌子、椅子、地板等,但是房子你是看不到全貌了。对于一个类的实例来说,你可以看到它的成员函数、成员变量,但是实例本身呢?this是一个指针,它时时刻刻指向你这个实例本身通过上面的分析,我们可以了解到,this就是自己,自己就是t...原创 2017-04-05 21:33:47 · 296 阅读 · 0 评论 -
基于VC6.0的MFC应用程序开发中的一…
---------------------------------------代码每天都要敲,总结每次都要写------------------------------------距离上一次奋力写代码已过了一星期,期间经过了二级考试,感觉并无收获。并且我认为C++跟C的关系不是太大,C++很好的人C不一定很好。上一次做了一个数据库测试的软件,因为知识的匮乏,过程中出现各种bug,好在一步一步解决了...原创 2017-04-05 21:33:49 · 4774 阅读 · 0 评论 -
C++基础(一)
c++ primer plus(第六版)1 在vc++6.0上新建c++源文件,文件名要加后缀 .cpp ,否则运行不起来 2 关于头文件,下面介绍一下c++旧式风格 以 .h 结尾 iostream.h c++可用 c旧式风格 以.h 结尾 math.h c/c++可用 c++新式风格 无拓展名 ...原创 2017-04-05 21:34:07 · 312 阅读 · 0 评论 -
C++基础(二)
1 数组声明格式 typeName arrayName[arrarySize]; arraySize值不能是变量2 数组下标必须有效,程序无法检测错误3 sizeof()用于数组名,即整个数组字节数,而用于元素的时候,即元素字节数4 字符和字符串 char shirt_size = 'S',将 83 赋给 shirt_sizechar shirt_size = "S","S"表示字...原创 2017-04-05 21:34:10 · 201 阅读 · 0 评论 -
定时器的使用(学习计时器软件开发…
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////...原创 2017-04-05 21:34:13 · 5833 阅读 · 0 评论 -
C++基础(三)
1 c 11是c 最新标准 2 结构体定义,在C语言中必须要加 struct,而C 可以省略 3 访问类成员函数,如cin.getline()的方法是从访问结构体变量的方法中衍生出来的,结构体类量.成员变量 4 declaration 声明 5 位字段使用,指定变量需要使用的位数struct target_register{unsigned int SN...原创 2017-04-05 21:34:16 · 228 阅读 · 0 评论 -
关于VC++6.0软件打包
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////...原创 2017-04-05 21:34:18 · 2851 阅读 · 0 评论 -
串口通信助手详解以及界面美化
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////又来还之前的债了。串口助手软件详解之前参照龚建伟的《串口调试助手源程序及编程详细过程》写了一个串口助手,很感谢,这篇文章对MFC初学者很有帮助,讲的比较详...原创 2017-04-05 21:34:21 · 3663 阅读 · 1 评论 -
展开泰勒公式,求精度
#include "stdafx.h"#include <iostream>#include <stdlib.h>using namespace std;double one(double x, double n);int _tmain(int argc, _TCHAR* argv[]){ double x; double n; cout...原创 2017-04-04 22:59:03 · 4993 阅读 · 1 评论 -
实现一个操作集合的类
c++实验课作业:实现整型集合的增、删、清空、求元素数目、输出所有元素、求交并集……类头文件: #ifndef CLASS_H_INCLUDED#define CLASS_H_INCLUDED#include <string.h> //包含memsetclass Set{public: int items[20]; int number; Set(...原创 2017-04-04 22:41:21 · 898 阅读 · 0 评论 -
关于#pragma的详细解释
在#Pragma是预处理指令它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C ++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器 或操作系统专有的,且对于每个编译器都是不同的。 其格式一般为: #Pragma Para 其中Para 为参数,下面来看一些常用的参数。(1)message 参数。 ...转载 2017-03-18 23:40:40 · 1694 阅读 · 0 评论 -
VC6.0在win10下各种崩溃问题的可能原因
当使用VC6.0时,刚打开软件、打开项目、停止运行或者调试时停止运行的可能原因为使用了Visual Assist助手。把它禁用了就OK了,也可以重新装一个其他版本的Visual Assist助手试一下,只不过写起代码来难受一点。花大把时间去解决vc6.0的环境崩溃问题不值得。...原创 2019-05-28 10:53:29 · 3136 阅读 · 0 评论 -
利用Qt视图场景类编写的可在二维、三维控件旋转、放大、缩小的例子
效果如下:代码如下,其中二维旋转也可以用三维旋转的方式来做。#ifndef WIDGET_H#define WIDGET_H#include <QWidget>namespace Ui {class Widget;}class Widget : public QWidget{ Q_OBJECTpublic: explicit Wi...原创 2019-03-23 13:25:21 · 1628 阅读 · 0 评论 -
MFC对话框自适应导致下拉框无法下拉问题的解决
最近需要把一个MFC对话框程序嵌进QT界面中,MFC对话框中有许多下拉框控件。当QT界面大小发生变化时,MFC界面也会相应的作自适应。但结果就是,下拉框全部拉不下来。 造成这个现象的原因就是,在写自适应的时候我们改变了下拉框的高度,实际上是不能改变的。网上也没有可靠的解决方法。 我的做法就是,遍历控件改变他的位置,如果遇到下拉框就只改变其宽度,不改变其...原创 2019-03-23 10:19:44 · 2228 阅读 · 0 评论 -
Qt操作Excel
写了一个Qt操作Excel的例子,可根据业务需求改造代码。下载链接:https://download.csdn.net/download/qq_24282081/11051957没积分的直接找我要原创 2019-03-23 12:49:38 · 1429 阅读 · 3 评论 -
关于C/C++副作用与顺序点的问题
在学习c++primer plus过程中遇到了这个问题,查询大量资料后,我总结一下。首先看下面这个问题: int x=1,y;y = x++ * (5 + x++);printf("x = %d,y = %d",x,y);或者以C++写的:int x=1,y;y = x++ * (5 + x++);cout<<x<<endl<...原创 2017-01-23 15:48:21 · 979 阅读 · 0 评论 -
逗号运算符
总结一下相对陌生的逗号运算符。 我们常见的逗号一是作为列表分隔符,即如下代码: int i,j;int a=0,b=0;二是把两条或者更多的语句放在按c++语法只能放在一个表达式的地方,比如for循环语句里: int i,j;for(j=0,i=0;i<10;j++,i--) cout<<i<<...原创 2017-01-23 17:43:28 · 591 阅读 · 0 评论 -
关于C++中输入函数cin的一些总结
/*关于cin>>,cin.get(),cin.getline(),cin.clear()函数的总结*//*输入时总是先输入缓冲区,然后函数再去取*//*cin>>*/char a[10];char b[10];cin>>a;cin>>b;cout<<a<<endl<<b<&a原创 2017-01-25 21:45:23 · 1058 阅读 · 0 评论 -
windows sockets TCP基础函数及范例
准备工作:1 导入头文件winsock2.h2 链接ws2_32.lib库3 调用WSAStartup(WORD wVersionRequested,LPWSADATA lpwsaData);说明:1 成功时返回0,失败时返回非零的错误代码值2 wVersionRequested:程序员要使用的Winsock版本信息。高八位为副版本号,低八位为主版本号常用MAKEWORD宏来函...原创 2017-02-19 16:12:01 · 606 阅读 · 0 评论 -
Windows socket UDP开发实例
开发环境:vc++6.0windows socket UDP开发函数介绍: int recvfrom(SOCKET s,char FAR * buf,int len,int flags,struct sockaddr FAR * from,int FAR * fromlen);说明:1 SOCKET s:套接字2 char FAR* buf:接受数据缓冲区3 int len...原创 2017-02-20 12:40:22 · 1261 阅读 · 0 评论 -
VC++/MFC入门项目开发实战之任务管理系统
一 任务管理系统功能简述该系统基于C/S架构的TCP协议开发,利用MySQL数据库存放客户数据。客户端通过服务器从数据库中实现对数据的增删改查,支持多用户同时在线操作。二 开发思路因为选择的是TCP协议的开发,因此首先要确定协议,即客户端先发送命令号,在发送数据,服务器则接受命令号,再根据命令号选择不同的处理函数处理。在此介绍一下协议的开发。1 在客户端跟服务器的工程里都需要包含相同的...原创 2017-02-28 22:09:57 · 7543 阅读 · 0 评论 -
UDP协议开发小结
//局域网内的聊天软件,显示局域网内在线用户//没有客户端和服务器之分enum{UPORT = 8880};//固定连接端口enum{ //命令号 SEND_HELLO = 0x1234, //局域网内某用户上线后,会向其他主机发送该命令(打招呼) REPL_HELLO, //收到打招呼信息后,回复该命令 SEND_BYE, //当某主机下线后,会向其他主机发送...原创 2017-03-13 10:33:06 · 687 阅读 · 0 评论 -
C++中Vector的使用总结
//vector//vector的遍历方式有两种:1 for(int i = 0;i < a.size();++i)2 for(iter = ivector.begin();iter != ivector.end();iter++)3 for_each//例程:#include <vector>#include <iostream>void p...原创 2017-03-14 16:35:20 · 425 阅读 · 0 评论 -
TCP短连接模式
TCP短连接模式:长连接模式是客户端进程启动时创建套接字,一直到客户端退出才销毁套接字。 而短连接模式是客户端每次发送请求前创建套接字,完成一系列操作后立即销毁。 对于客户端数量较少,操作频繁的时候建议用长连接模式。对于客户端数量较多,操作不是很频繁的时候建议用短连接模式,减少对服务器资源的占用。使用实例: //在客户端软件中创建一个新类class CSoc...原创 2017-03-18 13:03:25 · 1619 阅读 · 0 评论 -
C++中Format用法(转载)
原文地址:C++中Format用法(转载)作者:ccpacer(转)vc中format用法以及c++中Format用法vc中format的用法:以CString的Format举例,第一个参数是格式化字符串,就像printf的第一个参数一样,用%d表示int,%s表示char*,%u表示unsigned int,%hd表示short,%hu表示unsigned short,%hhd表示c...转载 2017-04-05 21:34:29 · 9452 阅读 · 1 评论 -
vc++开发阶段总结
用静态文本实时显示系统时间 //静态文本创建消息响应要勾选Notify选项//1 在Dialog对话框中添加定时器WM_TIMER的消息响应函数:void CServerDlg::OnTimer(UINT nIDEvent) { // TODO: Add your message handler code here and/or call default CDialog::On...原创 2017-04-10 19:13:20 · 525 阅读 · 0 评论 -
c++实现简单的通讯录
说明:1 程序中运用到两个类,一个是Person类,另一个是List类。前者存储用户信息,后者主要用于操作,如增删改查等。但由于本程序中没有涉及到太复杂的功能,用户信息可以由一个简单的结构体表示,但是为了以后拓展方便,和达到学习运算符重载的目的,还是使用了类。2 List类中的Reflush()方法用户刷新文件内容,即每次修改了vector后要将最新内容写入到文件。因此增删改操作中都要调用...原创 2017-05-22 10:23:11 · 9962 阅读 · 7 评论 -
复习windows程序运行机制
通过编写一个简单的win32对话框程序,回顾了一下windows程序的运行机制。 #include <Windows.h>#include <stdio.h>//操作系统将每个事件包装成消息放入消息队列中,应用程序从消息队列中获取消息并做相应处理//消息回调函数声明LRESULT CALLBACK Winmypro( ...原创 2018-01-09 19:24:01 · 467 阅读 · 0 评论 -
回顾绘图类
1 为完成消息捕获,需增加windows消息处理2 在对应类中选择相应消息处理3 文档视类,view类覆盖在框架类上,因此在窗口上的任何操作只能作用在view上4 添加消息响应三步骤: 1 afx_msg void OnLButtonDown(UINT nFlags, CPoint point)//头文件中消息响应的声明 2 BEGIN_MESSAGE_MAP(CDr...原创 2018-01-11 11:19:34 · 262 阅读 · 0 评论 -
关于VC6.0打开庞大工程时,ClassView加载不出来直接卡住或导致Workspace空白的问题
因为类比较多,加载不出来。删除.ncb文件无果,可能是Visual Assist X的问题。解决方法:右键点击菜单栏空白处->自定义->Add-ins and Marro Files->取消Visual Assist X Add-in,关闭工程重新加载,这时如果还卡就重复关闭打开,等到加载出来后在勾选Visual Assist X Add-in。...原创 2018-03-22 14:35:35 · 1097 阅读 · 0 评论 -
关于__DLLMain冲突导致的问题解决
在做一个MFC拓展库的时候,编译的时候出错error LNK2005 与warning LNK4006错误,意思就是有多个入口函数,即MFC已经自带入口函数但自己又新建了入口函数。但我确定自己没有新建入口函数,最后找了半天发现是我调用的一个DLL里写了入口函数。因为这个函数不做任何工作,因此将它注释后问题解决。遇到该问题第一反应应该全项目搜索DlLMain。 ...原创 2018-04-13 14:10:57 · 762 阅读 · 0 评论 -
在DLL中使用定时器的问题
我在做MFC拓展库的时候,需要在DLL里用到定时器。本打算用OnTimer,因为没有窗口类,因此只能自己发消息。方法就是:开一个线程在线程里调用SetTimer()并自己负责接收消息,然后在定时器回调函数里处理工作。具体如下:1 hThreadREC = (HWND)::CreateThread(NULL,0,ThreadRecordingState,NULL,0,NULL);...原创 2018-04-13 14:47:10 · 2409 阅读 · 0 评论 -
托盘程序编写例子
1 定义结构体变量 public: NOTIFYICONDATA m_taskbarIconInfo;2 在OnInitDialg中初始化结构体 m_taskbarIconInfo.cbSize = sizeof (NOTIFYICONDATA); m_taskbarIconInfo.hWnd = m_hWnd; m_taskb...原创 2018-04-13 15:04:19 · 1017 阅读 · 0 评论 -
mfc编程消息机制中消息汇总
做VC开发必须熟悉消息机制,笔试面试重点,自己在这方面很欠缺,搜集学习一下WM_CREATE CreateWindow 初始化工作GetMessage 遇到WM_QUIT,程序结束DispatchMessage 向窗口派送消息重复2,3操作关闭按钮,发出WM_CLOSEDefWindowProc处理WM_CLOSE消息,调用DestroyWindows消息...转载 2018-04-13 15:14:42 · 595 阅读 · 0 评论