文章分类 - C/C++ application
摘要:C++ Vector应用方式是比较特殊的,我们将会在这篇文章中针对于它的应用方式进行一个详细的介绍,希望大家能充分掌握这一应用技巧。AD:C++编程语言中有一种叫做Vector的应用方法,它的作用在实际编程中是非常重要的。在这里我们将会为大家详细介绍一下C++ Vector的相关应用技巧及基本内容,...
阅读全文
摘要:C的设计原则是把函数作为程序的构成模块。main()函数称之为主函数,一个C程序总是从main()函数开始执行的。一、main()函数的形式 在最新的 C99 标准中,只有以下两种定义方式是正确的: (参阅ISO/IEC 9899:1999 (E) 5.1.2.2.1 Program startu...
阅读全文
摘要:发一个简单易用的界面,用来对USB HID设备(比如说游戏手柄,控制面板等)读写数据,一般情况下面板上有一些LED,可以帮助我们测试读写是否正确。另外,需要可以修改vendorID和prodcutID,这样一个界面,可以用于测试多个HID设备。过程分成3步:1: 列举出所有的HID设备,2: 循环读取HID设备数据,3: 向HID设备写数据,下面我把三部分的程序单独分开,方便大家学习!在讲具体程序之前,先说一下visual studio的环境配置(我用的是2008版本)!第一步:列举所有的HID设备:m_ctllHIDdevices.ResetContent(); //这是MFC里面一个lis
阅读全文
摘要:HANDLE CreateEvent(LPSECURITY_ATTRIBUTES lpEventAttributes,BOOL bManualReset,BOOL bInitialState,LPCSTR lpName);bManualReset:TRUE,使用ResetEvent()手动重置为无信号状态;FALSE,当一个等待线程被释放时,自动重置状态为无信号状态。bInitialState:指定事件对象的初始状态,当TRUE,初始状态为有信号状态;当FALSE,初始状态为无信号状态。下面主要演示一下采用CreateEvent实现多线程。例子很简单,主要测试CreateEvent中bManu
阅读全文
摘要:没有过多的理论, 但有些内容是必要的. 在 C++ 中执行一段 Script 的方法相当的多, 但你需要其返回值, 这可能需要使用 MS 提供的 MSScript.ocx (在 C++ 中引用该 ActiveX Object). 先来个例子, 假定一段 VBScript 的过程如下: Private Function GetValue() GetValue=5 End Function 你期望在 C++ 中执行此过程, 并将返回值 5 保存到 C++ 中定义的变量中. 这好办, 在 C++ 需要引用 MSScript.ocx, 以下是一个Win32 Console Application (控
阅读全文
摘要:最近由于工作需要,不得不操作Excel,包括基本的数据输入输出、字体设置、颜色设置、单元格的合并、填充色的设置,当然还包括图表的生成以及渐近线的操作等。折腾了许久,项目终于完成了^_^。现在将学习操作Excel的点点滴滴记录下来和大家一同分享,也作为自己的一次总结。 1、Excel的对象模型(有人称其为层次结构)打开一个Excel工作表,点击“工具”->“宏”->“Visual Basic 编辑器”选项打开VB的编辑器,打开帮助文档,里面“Microsoft Excel Visual Basic 参考”下的“Microsoft Excel 对象模型”展示了完整的Excel的层次结构
阅读全文
摘要:VC++中操作XML(MFC、SDK)XML在Win32程序方面应该没有在Web方面应用得多,很多Win32程序也只是用XML来存存配置信息而已,而且没有足够的好处的话还不如用ini。VC++里操作XML有两个库可以用:MSXML和XmlLite。MSXML又细分了两种接口:DOM和SAX2。XP没自带有XmlLite,只自带有2.x、3.x版的MSXML,不支持SAX2(需要MSXML 4.0以上),所以优先使用DOM。DOM是以COM形式提供的,VC++里调用DOM可以分3种方法:1、MFC里用CComPtr调用2、SDK里直接调用DOM接口3、SDK里用智能指针调用这3种方法本质上是一样
阅读全文
摘要:有时候要实现两个选项的切换,常规做法1是放两个Radio按钮控件,并设置这两个按钮为一组。2是放一个Check按钮控件。但感觉都不是那么理想和直观。有没有更好的实现方式呢?下面将给你介绍一种我自绘的控件,我把它命名为“切换控件”(SwitchButton)。实现的效果如下图实现,给你一个多的选择,以供参考。下面是实现源码:[cpp] view plaincopyprint?///////////////////////////////说明文件///////////////////////////////////////////// //文件:SwitchBtn.h// //功能:切换按钮类,实
阅读全文
摘要:1.线程之间的通信简介一般而言,在一个应用程序中(即进程),一个线程往往不是孤立存在的,常常需要和其它线程通信,以执行特定的任务。如主线程和次线程,次线程与次线程,工作线程和用户界面线程等。这样,线程与线程间必定有一个信息传递的渠道。这种线程间的通信不但是难以避免的,而且在多线程编程中也是复杂和频繁的。线程间的通信涉及到4个问题:(1) 线程间如何传递信息(2)线程之间如何同步,以使一个线程的活动不会破坏另一个线程的活动,以保证计算结果的正确合理(3)当线程间具有依赖关系时,如何调度多个线程的处理顺序(4)如何避免死锁问题在windows系统中线程间的通信一般采用四种方式:全局变量方式、消息传
阅读全文
摘要:您可以添加 MFC 应用程序开销很小,使用 Microsoft ActiveX 脚本技术类似于 VBA 的脚本编写功能。本文演示如何创建新的 MFC 应用程序中,或修改现有,合并了 VBScript 的支持。回到顶端 | 提供反馈更多信息请按照以下步骤来生成并运行该示例:创建新 MFC 对话框基于的应用程序,或使用要添加脚本的支持已有的应用程序。向对话框,添加一个编辑框和按钮,启用"需要返回"和"多行"编辑框中的属性中的样式。使用成员变量选项卡下类向导 (CTRL-W),IDC_EDIT1 相关联的类型名为 m_edit1 的 CEdit 成员变量。类向
阅读全文
摘要://ASR.h#include #include #define MAXDATA (256*400) //一般采样数据大小,语音文件的数据不能大于该数据#define SFREMQ (8000) //采样数据的采样频率8khztypedef struct WaveStruck//wav数据结构{ //data headstruct HEAD{char cRiffFlag[4];int nFileLen; char cWaveFlag[4];//WAV文件标志char cFmtFlag[4]; int cTransition; short nFormatTag;short nChannels;i
阅读全文
摘要://Fourier.cpp:implementationoftheFourierclass. // ////////////////////////////////////////////////////////////////////// #include"stdafx.h" #include"Fourier.h" #include #ifdef_DEBUG #undefTHIS_FILE staticcharTHIS_FILE[]=__FILE__; #definenewDEBUG_NEW #endif /* *fft.cpp * *loicfont
阅读全文
摘要:CString 头文件#include <afx.h>string 头文件#include <string.h>CString 转char *CString cstr;char *p = (LPSTR)(LPCTSTR)cstr;string 转 CStringCString.format(”%s”, string.c_str());char 转 CStringCString.format(”%s”, char*);char 转 stringstring s(char *);string 转 char *char *p = string.c_str();CString
阅读全文
摘要:Visual C++6.0是开发Windows应用程序的强大工具,但是要通过它实现程序的打印功能,一直是初学者的一个难点,经常有朋友询问如何在VC中实现打印功能,他们往往感到在MFC提供的框架内实现这个问题很复杂,不知道如何下手。本例针对这个问题,介绍一种简单的方法实现文字串的打印功能,读者朋友可以在此基础上稍微改动一下,就可以实现文件、图像的打印功能。 一、实现方法 在Windows操作系统下,显示器、打印机和绘图仪都被视为输出设备,正常情况下,系统默认的输出设备是显示器。要使用打印机,首先需要创建一个指向打印机的设备环境句柄,然后通过该句柄调用相关的绘图函数把所需的文字和图形输出至打印..
阅读全文
摘要:sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流式套接字。在这个程序中,将两个工程添加到一个工作区。要链接一个ws2_32.lib的库文件。服务器端编程的步骤:1:加载套接字库,创建套接字(WSAStartup()/socket());2:绑定套接字到一个IP地址和一个端口上(bind());3:将套接字设置为监听模式等待连接请求(listen());4:请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept());5:用返回的套接字和客户端
阅读全文
摘要://TCP//服务器端程序#include< stdio.h >#include< stdlib.h >#include< windows.h >#include< winsock.h >#include< string.h > #pragma comment( lib, "ws2_32.lib" )#define PORT 2046#define BACKLOG 10#define TRUE 1void main( void ){int iServerSock;int iClientSock;char *buf
阅读全文
摘要:本文测试环境 :X86-64 bit 架构的服务器CentOS x64 5.xgcc version 4.1.2 20080704指针和数组是C的比较难搞懂的知识点, 需要结合内存来学习, 非常感谢各位兄弟为我指点迷津.下面总结一下 :首先说明一下C程序在运行时, 不同的内容或变量分别存储在什么地方?分了几块区域分别是, code, constants, global, heap, stack; (内存地址从低到高)其中constants存储常量(常量值不允许修改), global存储在所有函数以外定义的全局变量(全局变量允许修改), heap是一块动态内存区域(可存放持久化内容, 不会自动释
阅读全文
摘要:简介 对于很多初学者来说,往往觉得回调函数很神秘,很想知道回调函数的工作原理。本文将要解释什么是回调函数、它们有什么好处、为什么要使用它们等等问题,在开始之前,假设你已经熟知了函数指针。 什么是回调函数? 简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。 为什么要使用回调函数? 因为可以把调用者与被调用者分开。调用者不关心谁是被调用者,所有它需知道的,只是存在一个具有某种特定原型、某些限制条件(如返回值为int)的被调用函数。 如果想知道回调函数在实际中有什么作用,先假...
阅读全文