C++
乄失忆丶雨
要想立于不败之地,就得不断学习和努力!
展开
-
CListBox快速清空
方法一:while(pmyListBox->GetCount()) pmyListBox->DeleteString( 0 ); 方法二:int nListCount=pMyListBox->GetCount(); for (int i=0;i < nListCount;i++) { pmyListBox->DeleteString(0);//循环次数等于总个原创 2017-12-01 16:12:03 · 3930 阅读 · 0 评论 -
error LNK2001: unresolved external symbol __endthreadex 解决办法
error LNK2001: unresolved external symbol __endthreadex这个问题,找到的解决办法如下没有用到beginthreadex endthreadex两个例程.在VC中编译程序时显示Linking...nafxcw.lib(thrdcore.obj) : error LNK2001: unresolved external sy转载 2017-04-06 18:42:46 · 607 阅读 · 0 评论 -
__stdcall,__cdecl,_cdecl,_stdcall,__fastcall,_fastcall 区别简介
1.今天写线程函数时,发现msdn中对ThreadProc的定义有要求:DWORD WINAPI ThreadProc(LPVOID lpParameter);不解为什么要用WINAPI宏定义,查了后发现下面的定义。于是乎需要区别__stdcall和__cdecl两者的区别; #define CALLBACK __stdcall#define WINAPI __stdcall转载 2017-04-06 09:43:23 · 221 阅读 · 0 评论 -
多线程六 经典线程同步之信号量Semaphore
1、首先来看看如何使用信号量 信号量Semaphore常用有三个函数,使用很方便。下面是这几个函数的原型和使用说明。第一个 CreateSemaphore函数功能:创建信号量函数原型:HANDLE CreateSemaphore( LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, LONG l转载 2017-04-06 09:41:02 · 1590 阅读 · 0 评论 -
C++版循环缓冲区类
[cpp] view plain copy print?// 声明 class CCycleBuffer { public: BOOL isFull(); BOOL isEmpty(); void Empty(); int GetLength(); CCycleBuffer(int size);转载 2017-04-07 10:04:40 · 2392 阅读 · 0 评论 -
归并排序的C++实现
归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并过程为:比较a[i]和a[j]的大小,若a[i]≤a[j],则将第一个有序表中的元素a[i]复制到r[k]中,并令i和k分别加上1转载 2017-03-20 18:50:27 · 406 阅读 · 0 评论 -
VC对话框焦点转换问题
建立一个基于对话框的应用程序,可以看到在CXxxApp的InitInstance()函数中: CDlgaDlg dlg; m_pMainWnd = &dlg;应用程序启动时,必须对CXxxApp的成员变量m_pMainWnd进行赋值,否则无法运行。在单文档的工程中,我们看不到这种赋值操作,它是在 if (!ProcessShellCommand(转载 2017-02-21 10:21:28 · 893 阅读 · 1 评论 -
配置WINDOWS驱动程序的开发环境-走出第一步
开发我们自己设计的一块板子的PCI设备驱动,并给我指出了方向,具体说就是“三步走”战略:(1)入门。熟悉基于DriverStudio开发环境的设备驱动开发,同时侧面了解PCI设备驱动程序的相关知识。(2)进阶。运用纯DDK进行驱动开发,着重于学习别人的实例,并能熟练进行调试和修改。(3)实战。深入研究PCI总线标准,结合具体的电路板特性开发出一套自己的设备驱动。现在转载 2017-01-17 14:15:10 · 854 阅读 · 0 评论 -
PCI9054驱动设计开发
首先是选用开发工具。设备驱动这东东没有工具好像是没有办法做的。一年前我把自己智力估计过高,一头扎进了DDK里面,结果是按照书上做东东,做出来也不明白是什么意思。然后就搁浅了。后来用WinDriver,也没有什么概念性的提高。 现在不做不行了。可选的还有DS,这个与VC结合很好的东东,虽然别人说有这样那样的问题,但是还是有很多人在用。我想就从这里开始吧。 2003-3-1转载 2017-01-17 13:57:29 · 972 阅读 · 0 评论 -
VC编译选项部分解释---驱动开发
VC编译选项部分解释> /nologo:代表不显示编译的版权信息。> /Gz:默认函数调用采用标准调用(__stdcall)。> /W3:采用第三级的警告模式。> /WX:将警告信息变成错误信息,最大程度地保证了代码的可靠性。> /Z7:用Z7模式产生调试信息。VC默认的Program Database for “Edit & Continue”,这个和l原创 2017-02-07 16:23:45 · 327 阅读 · 0 评论 -
MSDN对链接器工具错误 LNK2019的解释
链接器无法找到函数“function”中使用的外部符号“symbol”的定义。 有许多问题可能会导致此错误。 本主题将帮助你确定原因并找到解决方案。外部符号是你在源代码中用于引用在另一对象或库文件中定义的内容的声明名称,例如,一个外部函数或全局变量。 链接器负责解析每个对象文件中链接到应用程序或 DLL 的所有外部符号引用。 如果链接器无法在任何链接的文件中找到外部符号的匹配定义,那么原创 2016-12-20 11:36:13 · 1827 阅读 · 0 评论 -
"应用程序无法正常启动(0xc000007b)。请单击“确定”关闭应用程序。”
“应用程序无法正常启动(0xc000007b)。请单击“确定”关闭应用程序。”一般情况下都是程序中所运行的库文件与系统位不匹配,换句话说:32位系统程序中加载的动态库或静态库也应该是32位的,64位系统程序中加载的动态库或静态库也就应该是64 位的。希望对大家有帮助!原创 2016-12-20 11:04:32 · 4245 阅读 · 0 评论 -
c++编程:获取控件上的文本值---例子是CEdit 的七种方法(转载)
1. int num1,num2,num3;char ch1[10],ch2[10],ch3[10];GetDlgItem(IDC_EDIT1)->GetWindowText(ch1,10);GetDlgItem(IDC_EDIT2)->GetWindowText(ch2,10);num1=atoi(ch1);num2=atoi(ch2);num3转载 2017-06-08 10:35:03 · 2602 阅读 · 0 评论 -
MFC中IPADDRESS控件的使用
MFC中IPADDRESS控件的使用void CMyDlg::OnIPAddress() { // 此段代码:独立的获取本机IP地址和计算机名 WORD wVersionRequested; WSADATA wsaData; char name[255]; CString ip; PHOSTENT hos转载 2017-06-08 10:59:35 · 1572 阅读 · 0 评论 -
MFC运行时窗口总是最小化,不直接弹出
1、这个问题是由于如下图步骤时勾选了“最小化“。解决办法如下第二张图,在InitDialog()函数中删除ShowWindow(MINSIZE).这样再运行时就会直接弹出了。转载 2017-09-28 14:25:29 · 1786 阅读 · 0 评论 -
MFC让对话框窗口始终在最前&MFC弹出非模态对话框&居中
一、MFC让对话框窗口始终在最前方法一:在对话框的属性中,在more style中有一项是System model,选上它,即可!方法二:OnInitDialog里加入SetWindowPos(&wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);外部调用: m_dialog->SetWindowPos(&wndTopMost, 0, 0, 400,原创 2017-09-28 11:18:09 · 8736 阅读 · 1 评论 -
Windows下C++ 串口编程实例
1. 本例子使用了比较规范的软件设计方法,类的设计具有比较好的可扩展性和移植性、代码的注释采用doxgen支持的javaDoc风格。2. 为了能方便初学者更快地了解和入门,几乎每一行代码都加上了详细的注释,对于注释中如果依然有不清楚的概念,相信你通过百度和google一定能找到答案。3. 本例子设计的串口操作类可以直接移植到其他的工程中去,大家也可以根据自己的需要添加其他的接口。4.转载 2017-09-27 16:14:44 · 2565 阅读 · 0 评论 -
MFC文件操作大全
获得文件路径:GetFilePath()获得文件名:GetFileName()获得文件标题:GetFileTitile()Path is : "C:\WINDOWS\SYSTEM.INI"Name is : "SYSTEM.INI"Title is: "System"1.创建文件夹创建路径上最后的一个文件夹[cpp] view plain c转载 2017-09-26 13:42:21 · 419 阅读 · 0 评论 -
MFC中用CFile读取和写入文件
MFC提供了CFile类方便文件的读写,首先要知道,文件的数据读取、数据写入与文件指针的操作都是以字节为单位的,数据的读取和写入都是从文件指针的位置开始的,当打开一个文件的时候,文件指针总是在文件的开头。常规方法如下:CFile file;file.open( LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError转载 2017-09-26 12:21:31 · 2674 阅读 · 0 评论 -
数字字符串转十六进制
数字字符串转十六进制char HexChar(char c){ if((c>='0')&&(c<='9')) return c-0x30; else if((c>='A')&&(c<='F')) return c-'A'+10; else if((c>='a')&&(c<='f')) return c-'a'+10; else return 0x10;}//将原创 2017-09-25 10:42:48 · 1434 阅读 · 0 评论 -
Run-Time Check Failure #3 - The variable 'comstat' is being used without being initialized
方案1: 改变项目配置属性一种解决方案是改变基本运行时检查(changing the runtime checks in project settings):在菜单Project->Project properties-> C/C++ -> Code generation-> Basic Runtime checks --> change to 'Default',在中文版中是:项目-转载 2017-09-24 15:23:45 · 1207 阅读 · 0 评论 -
DPC(延迟过程调用)的技术细节
-DPC(延迟过程调用)的细节NTINSIDER,16卷,1期,1至2月2009延迟过程调用(DPC)是一种Windows常用功能。用途是广泛和多样的,但最常用的是我们通常所说的“ISR完成”和WindowsTimer底层技术。 如果DPC常用,为什么还要写此篇?我们发现,大多数人并不真正了解DPC工作的底层实现细节。并且,事实证明,一个深入的理解,在选择选项创建D转载 2017-09-04 11:47:29 · 1883 阅读 · 0 评论 -
精准计算程序或CPU运行时间
精准计算程序或CPU运行时间下面就是计算读寄存器所耗时间:LARGE_INTEGER t1, t2, tc; QueryPerformanceFrequency(&tc); QueryPerformanceCounter(&t1); WORD wNewPos = 0; TG_ReadReg( Handle, 0x100, &wNewPos, 1 );QueryPerforman原创 2017-08-10 09:38:26 · 806 阅读 · 0 评论 -
SylixOS入门指南--架设开发环境
本文编辑环境本文在windows7(64位)上使用Google Chrome浏览器编辑,为保证截图效果,所有截图均使用PicPick截取,windows7使用Windows 7 Base主题,即关闭了Aero特效。本文目的本文目的在于帮助SylixOS爱好者获得SylixOS操作系统源代码、搭建开源的SylixOS集成开发环境、编译及调试SylixOS操作系统。转载 2017-07-31 17:23:19 · 1947 阅读 · 0 评论 -
C语言结构体的对齐原则
C语言结构体的对齐原则Q:关于结构体的对齐,到底遵循什么原则?A:首先先不讨论结构体按多少字节对齐,先看看只以1字节对齐的情况:#include #include #define PRINT_D(intValue) printf(#intValue" is %d\n", (intValue));#define OFFSET(struct,member原创 2017-06-08 16:31:11 · 357 阅读 · 0 评论 -
windows xp 驱动开发(三)DDK与WDK WDM的区别
转自: http://www.cnblogs.com/hyddd/archive/2009/03/15/1412684.html 最近尝试去了解WINDOWS下的驱动开发,现在总结一下最近看到的资料。 1.首先,先从基础的东西说起,开发WINDOWS下的驱动程序,需要一个专门的开发包,如:开发Java程序,我们可能需要一个JDK,开发WINDOWS应用程序,我们需要WINDOWS转载 2017-01-06 10:33:08 · 442 阅读 · 0 评论 -
Qt Creator下载和安装(详细教程)
简介Qt是跨平台的图形开发库,目前由Digia全资子公司 Qt Company 独立运营,官方网址: http://www.qt.io/ 也可以访问Qt项目域名:http://qt-project.org/ Qt本身支持众多操作系统。从通用操作系统Linux、Windows,到手机系统Android、iOS、WinPhone,嵌入式系统支持QNX、VxWorks,应用非常广泛。转载 2017-01-04 15:08:36 · 18092 阅读 · 2 评论 -
临界区锁 InitializeCriticalSection()--- EnterCriticalSection()--LeaveCriticalSection()
[+]1、InitializeCriticalSection此函数初始化一个临界区对象。格式:void InitializeCriticalSection( LPCRITICAL_SECTION lpCriticalSection);转载 2016-12-05 16:04:20 · 399 阅读 · 0 评论 -
error C1853: “Debug\BigBuffer.pch”预编译头文件来自编译器的早期版本,或者预编译头为 C++ 而在 C 中使用它(或相反)
该错误是因为当项目中混合了 .cpp 和 .c 文件时,编译器会对它们采取不同的编译方式(主要是因为对函数声明的处理方式不同),因而不能共用一个预编译头文件。在 VC++ 中,默认的预编译头文件是针对 C++ 的 (stdafx.h 和 stdafx.cpp),当然也可以创建针对 C 的预编译头。方法:将少数的不同类文件设为不使用预编译头是比较平衡的做法,方法是:对于 VC++6.0,原创 2016-12-05 15:08:46 · 6496 阅读 · 0 评论 -
数据在计算机中的存储形式和运算
一、数据概述以C语言为例,里面所有的基本数据类型,都是以符合人类世界和自然世界的逻辑而出现的。比如说int,bool,float等等。这些数据类型出现的目的,是更于让人容易理解,可以说,这些数据类型是架通人类思维 与 计算机的桥梁。我们知道。依照冯诺依曼体系,计算机中并没有这些int float等等,而全部都是0和1表示的二进制数据,并且计算器只能理解这些0和1的数据。所以说转载 2016-12-05 11:43:25 · 1601 阅读 · 0 评论 -
XP下采用DirectShow采集摄像头
转载请标明是引用于 http://blog.csdn.NET/chenyujing1234 欢迎大家提出意见,一起讨论!需要示例源码的请独自联系我.前提: 摄像头能正常工作、摄像头有创建directshow filter即 大家可以对比我的另一篇文章学习: wince系统下DirectShow采集摄像头一、初始化工作1、Dirct转载 2016-12-12 14:14:23 · 352 阅读 · 0 评论 -
标准C++中的string类的用法总结
相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用。但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的。也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给出操作方法。其实,可能很多人很可能会忽略掉标准C++中string类的使用。标准C++中提供的str转载 2016-12-12 13:18:50 · 238 阅读 · 0 评论 -
Windows下获取当前路径和执行路径
1、获取执行路径: ///////////////////下面得到应用程序所在的路径/////////////////// CString theAppPath,theAppName; char Path[MAX_PATH]; GetModuleFileName(NULL,Path,MAX_PATH);//得到应用程序的全路径原创 2016-12-12 13:09:56 · 10401 阅读 · 0 评论 -
xxresult(28): error C2825: '_Fty': 当后面跟“::”时必须为类或命名空间
一大堆错误,在百度上查询后才知,这是两个bind函数冲突了,解决办法很简单,将所有调用的bind加上前缀,区分开来,bind改为 ::bind纠结了我一段时间,记录下来转载 2016-12-01 10:05:03 · 2479 阅读 · 0 评论 -
error C2146: 语法错误: 缺少“;”(在标识符“GetApplication”的前面)
error C2146: 语法错误: 缺少“;”(在标识符“GetApplication”的前面)error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 interror C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int出现以上这种情况,可以在stdafx.h 头文件中添加#inclu原创 2016-11-30 15:25:03 · 3000 阅读 · 0 评论 -
在调用CreateDispatch("Excel.Application")不成功
对Excel的操作 if(!app.CreateDispatch("Excel.Application")){AfxMessageBox("无法启动Excel服务器!");return;}在调用CreateDispatch("Excel.Application")不成功,可能是没有初始化COM ,解决办法在此之前加上以下代码:if(S_OK != CoIniti原创 2016-11-30 15:09:59 · 11708 阅读 · 1 评论 -
比较通用的 stdafx.h 源码
// stdafx.h : 标准系统包含文件的包含文件,// 或是经常使用但不常更改的// 特定于项目的包含文件#pragma once#ifndef _SECURE_ATL#define _SECURE_ATL 1#endif#ifndef VC_EXTRALEAN#define VC_EXTRALEAN // 从 Windows 头中排除极少使用的资原创 2016-11-30 15:05:30 · 959 阅读 · 0 评论 -
#pragma once与#ifndef两种防止头文件二次编译的区别
在最开始接触到C语言的时候,看到很多大牛们写的代码里面就有#ifndef #define #endif 这三条语句,当时不明白什么意思,慢慢的后来自己也开始用了,也知道了他们合起来使用时为了防止头文件被二次编译,因为我们曾经写代码的过程中一定遇到过等类似的错误吧。到了学习C++的时候,我们老师给我们看他的代码的时候发现他的头文件里用的是#pragma once,就奇怪这是什么呢?然后私下转载 2016-11-30 14:56:43 · 241 阅读 · 0 评论 -
C++使用CriticalSection实现线程同步实例
本文实例讲述了C++使用CriticalSection实现线程同步的方法,使用了四个函数:EnterCriticalSection ::DeleteCriticalSection ::EnterCriticalSection ::LeaveCriticalSection此时,打印出来的数字就相等了。具体代码如下:#include "stdafx.h" #include DW原创 2016-12-05 16:54:09 · 339 阅读 · 0 评论 -
error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) already defined in LIBCMTD.lib
环境WIN10+VS2010。之前写代码时,需要调用windowsAPI,引用了#include windows.h>。接下来为了返回CString,引用了#include 。第一次报错:error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll vers转载 2016-12-06 13:27:10 · 2615 阅读 · 2 评论