返回首页 我的新博客
上一页 1 ··· 13 14 15 16 17
摘要: 下面是MFC实现的部分关键代码(仅供参考) SendDlg::SendDlg(CWnd* pParent /*=NULL*/) : CDialog(SendDlg::IDD, pParent) { //{{AFX_DATA_INIT(SendDlg) m_Baud = -1; //}}AFX_DATA_INIT ... 阅读全文
posted @ 2008-08-26 22:28 buffer的blogs 阅读(689) 评论(0) 推荐(0) 编辑
摘要: 进程、线程、内存管理是一个内核最基本的服务,也是一个内核最主要的组成部分。这几方面的知识是一个软件开发人员必须掌握的基础知识。虽然一个人不懂这些知识也能编写简单的程序,但这样的程序只能算是皮毛。掌握了进程、线程和内存管理方面的知识,就能够充分利用操作系统内核提供的服务,提高你编写的软件的执行效率、更节省资源、更健壮。顺便说一下,在Windows CE.net下可以运行用Visual Studio.... 阅读全文
posted @ 2008-08-26 13:50 buffer的blogs 阅读(804) 评论(2) 推荐(0) 编辑
摘要: 从网上整理的文章,同样,这只是为了我增加理解记忆而做到得笔记, 不存在利用价值,纯粹是学习和记忆.抄袭也好学习也好只是让人明 白道理.主要干活的还是自己的程序. I/O设备处理必然让主程序停下来干等I/O的完成, 对这个问题有 方法一:使用另一个线程进行I/O。这个方案可行,但是麻烦。 方法二:使用overlapped I/O。 正如书上所说:“overlapped I/O是WIN32的一项技... 阅读全文
posted @ 2008-08-25 22:52 buffer的blogs 阅读(547) 评论(0) 推荐(0) 编辑
摘要: 简述: Overlapped I/O也称Asynchronous I/O,异步I/O模型。异步I/O和同步I/O不同,同步I/O时,程序被挂起,一直到I/O处理完,程序才能获得控制。异步I/O,调用一个函数告诉OS,进行I/O操作,不等I/O结束就立即返回,继续程序执行,操作系统完成I/O之后,通知消息给你。Overlapped I/O只是一种模型,它可以由内核对象(hand),事... 阅读全文
posted @ 2008-08-25 22:51 buffer的blogs 阅读(681) 评论(0) 推荐(0) 编辑
摘要: 许久不在这里写日志了。因为申请了个人主页,使用phpMyAdmin维护远程MySQL的,所以,自己在本地也搭建一个环境,但无论如何都不能成功,总会出现客户端不支持认证协议的提示,所以找到MySQL的文档研究了一下,记录下来。 MySQL 4.1 and up uses an authentication protocol based on a password hashing algorithm ... 阅读全文
posted @ 2008-08-25 22:47 buffer的blogs 阅读(265) 评论(0) 推荐(0) 编辑
摘要: Win32重叠I/O(Overloapped I/O)机制允许发起一个操作,然后在操作完成之后接受 到信息。对于那种需要很长时间才能完成的操作来说,重叠I/O机制尤其有用,因为发起 重叠操作的线程在重叠请求发出后就可以自由地做别的事情了。 在Windows NT/2000上,提供真正可扩展的I/O模型就是使用完成端口(Completion Port)的重叠I/O。 …… ... 阅读全文
posted @ 2008-08-25 22:43 buffer的blogs 阅读(900) 评论(0) 推荐(0) 编辑
摘要: 函数功能描述:创建或打开一个命名的或无名的事件对象 函数原型: HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, // 安全属性 BOOL bManualReset, // 复位方式 BOOL bInitialState, // 初始状态 LPCTSTR lpName // 对象名称 ); 参数... 阅读全文
posted @ 2008-08-25 22:41 buffer的blogs 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 用到的串口通信编程方法有:使用通信控件、在高级语言中嵌入汇编以及使用API函数。在这几种方法中,使用API函数编写的串口通信程序最为高效、灵活。串口通信编程将用到三种API函数——串口通信相关API函数、多线程API函数和实现消息机制的API函数,下面将分别介绍这几种API函数。 &nbs p; 1 与串口通信有关的API函数 Windows系统通信一般都以WOSA(Windows Op... 阅读全文
posted @ 2008-08-25 22:18 buffer的blogs 阅读(1480) 评论(0) 推荐(0) 编辑
摘要: 函数名: assert 功 能: 测试一个条件并可能使程序终止 用 法: void assert(int test); 程序例: #include #include #include struct ITEM { int key; int value; }; /* add item to list, make sure list is not null */ void additem(st... 阅读全文
posted @ 2008-08-25 22:16 buffer的blogs 阅读(808) 评论(0) 推荐(0) 编辑
摘要: WIN95界面下的VC++串口通讯程序在WIN32下是不建议对端口进行操作的,在WIN32中所有的设备都被看成是文件,串行口也不例外也是作为文件来进行处理的。这是我的一份关于串口编程的读书笔记,对于使 用VC进行编程的同行应该有一定的帮助。 1.打开串口: 在Window 95下串行口作为文件处理,使用文件操作对串行口进行处... 阅读全文
posted @ 2008-08-25 22:03 buffer的blogs 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 实际开发过程中,发现Windows CE. NET默认最大支持64MB内存。默认为32M,最大为64M,可以在PB的setting里面设置: 但是实际的应用中,往往对内存的需求往往超过64MB,而且现在内存的价格已经非常便宜,使用大内存已经是很普通的事情了,经过查看PB的帮助以及一阵摸索,找到了修改Windows CE.NET,可以使用大于64M的内存的方法,本文以128M为例。其主要方法如下... 阅读全文
posted @ 2008-08-24 23:16 buffer的blogs 阅读(446) 评论(0) 推荐(0) 编辑
摘要: C++程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。 1、内存分配方式 内存分配方式有三种: (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 ... 阅读全文
posted @ 2008-08-24 23:12 buffer的blogs 阅读(357) 评论(0) 推荐(0) 编辑
摘要: CString strData = _T("ni hao"); int len = WideCharToMultiByte(CP_ACP, 0, strData, -1, NULL, 0, NULL, NULL); ... 阅读全文
posted @ 2008-08-24 23:09 buffer的blogs 阅读(1133) 评论(0) 推荐(0) 编辑
摘要: 如果想读写可靠,要根据 不同的速率和应用实际情况设置合适的值。和同步模式和异步模式、不同的通信协议无关。 COMMTIMEOUTS:COMMTIMEOUTS主要用于串口超时参数设置。COMMTIMEOUTS结构如下: typedef struct _COMMTIMEOUTS { DWORD ReadIntervalTimeout; ... 阅读全文
posted @ 2008-08-23 13:55 buffer的blogs 阅读(1851) 评论(1) 推荐(0) 编辑
摘要: 目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口 (RS422,RS485较远),若距离较远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连。同一个串口的接收脚和发送脚直接用线相连,对9针串口和25针串口,均是2与3直接相连;两个不同串口(不论是同一台计算机的两个串口或... 阅读全文
posted @ 2008-08-23 12:59 buffer的blogs 阅读(1026) 评论(0) 推荐(0) 编辑
摘要: 微软在Windows API中提供了建立新的线程的函数CreateThread, 概述: 当使用CreateProcess调用时,系统将创建一个进程和一个主线程。CreateThread将在主线程的基础上创建一个新线程,大致做如下步骤: 1在内核对象中分配一个线程标识/句柄,可供管理,由CreateThread返回 2把线程退出码置为STILL_ACTIVE,把线程挂起计数置1 3分配conte... 阅读全文
posted @ 2008-08-22 23:44 buffer的blogs 阅读(1222) 评论(0) 推荐(0) 编辑
摘要: 该函数原型: BOOL PurgeComm(HANDLE hFile,DWORD dwFlags ) HANDLE hFile //串口句柄 DWORD dwFlags // 需要完成的操作 ... 阅读全文
posted @ 2008-08-22 23:14 buffer的blogs 阅读(1277) 评论(0) 推荐(0) 编辑
摘要: 1、API描述 在WIN32 API中,串口使用文件方式进行访问,其操作的API基本上与文件操作的API一致。 打开串口 Win32 中用于打开串口的API 函数为CreateFile,其原型为: HANDLE CreateFile ( LPCTSTR lpFileName, //将要打开的串口逻辑名,如COM1 或... 阅读全文
posted @ 2008-08-21 14:50 buffer的blogs 阅读(1166) 评论(0) 推荐(0) 编辑
摘要: Abstract std::string为library type,而int、double为built-in type,两者无法利用(int)或(double)的方式互转,本文提出轉換的方式。 Introduction 使用環境:Visual C++ 9.0 / Visual Studio 2008 Method 1: 使用C的atoi()與atof()。 先利用c_str()轉成C string... 阅读全文
posted @ 2008-08-18 23:11 buffer的blogs 阅读(8069) 评论(2) 推荐(0) 编辑
摘要: 制作OEM包(OEM Package)Part1 OEM Package是ROM模板的关键部分,通过选择不同的OEM Package可以使我们定制出不同的ROM。系列4准备分3类介绍如何制作OEM Package: 1. 如何将软件的cab安装包制成OEM Package 2. 如何制作绿色软件的OEM Package 3. 如何制作注册表修改的OEM Package 因为内容比较多,所以决... 阅读全文
posted @ 2008-08-18 21:15 buffer的blogs 阅读(2358) 评论(0) 推荐(0) 编辑
摘要: void CSerialKF1View::OnFileOpen() { // TODO: Add your command handler code here CFileDialog fileDlg(TRUE); if(fileDlg.DoModal() == IDOK) { CString str; CFile f; f.Open(fileDlg.GetFileName(),CF... 阅读全文
posted @ 2008-08-18 19:22 buffer的blogs 阅读(5529) 评论(0) 推荐(0) 编辑
摘要: 下面是一些文件读写的例子: #include std::ifstream fin; fin.open("文件名"); while (!fin.eof()) { char* pChar =new char[255]; fin.getline(pChar,255);// 每一行就到pChar中去:) ... 阅读全文
posted @ 2008-08-18 19:20 buffer的blogs 阅读(628) 评论(0) 推荐(0) 编辑
摘要: 设置异步I/O的参数: disk_asynch_io = ture/false tape_asynch_io = ture/false 有两种类型的文件IO同步:同步文件IO和异步文件IO。异步文件IO也就是重叠IO。 在同步文件IO中,线程启动一个IO操作然后就立即进入等待状态,直到IO操作完成后才醒来继续执行。而异步文件IO方式中,线程发送一个IO请求到内核,然后继续处理其他的事情,内核... 阅读全文
posted @ 2008-08-18 18:54 buffer的blogs 阅读(613) 评论(0) 推荐(0) 编辑
摘要: TC中使用图形函数的基本知识 我很想成一个知识很丰富的程序员,可所有的知识都要一点一点的学。 平时只写过作业式的程序的中国教育模式下的大学生来说,根本就没有任何用图形的经历,我甚至连要使用图形学要什么头文件都不知道。在网上查了些文章,最后找到了王大刚老师的这篇文章介绍了许多很有用的基本知识。 首先就是如果要在TC中使用图形化界面,需要"... 阅读全文
posted @ 2008-08-18 16:17 buffer的blogs 阅读(944) 评论(1) 推荐(0) 编辑
摘要: SendMessage函数完全使用手册 首先 我们了解一下Windows的消息机制。Windows是一个消息驱动式系统,Windows消息提供应用程序与应用程序之间,应用程序与Windows系统之间进行通信的手段。 举个例子,打开记事本程序,该程序有一个 “文件“菜单。 那么,在运行该程序的时候,如果用户单击“文件菜单“里的“新建“命令, 这个动作将被Windows所捕捉,Windows经过分析得... 阅读全文
posted @ 2008-08-03 09:48 buffer的blogs 阅读(1334) 评论(0) 推荐(0) 编辑
摘要: 将文件移到仿真器中的最简单方法是将它们包括为项目的一部分。使用这种方法的一个优点是,当在仿真器上执行强制重设时,只需重建项目即可恢复测试。 使用此方法的过程如下: 在 Visual Studio .NET 中打开项目。 在 Project(项目)菜单上,单击 Add Existing Item...(添加现有项...)。 在 Add Existing Item(添加现... 阅读全文
posted @ 2008-08-02 23:42 buffer的blogs 阅读(908) 评论(0) 推荐(0) 编辑
摘要: 首先下个TTS开发包 微软的TTS SDK5.0 #include #include #include #include #include #include #pragma comment(lib,"wininet") int main(int argc, c... 阅读全文
posted @ 2008-08-02 22:07 buffer的blogs 阅读(530) 评论(0) 推荐(0) 编辑
摘要: 记录: 问题: WinCE 中怎样实现播放一段wav 或wma或MP3格式的语音呢 具体函数是什么啊 我用PlaySound(TEXT("\\sounds\\bell.wav"),NULL,SND_SYNC|SND_NODEFAULT);怎么实现不了啊 我把\\sounds\\bell.wav直接放到工程文件夹的根目录下了 我把SND_NODEFAULT去掉之后 只播放一声“嘀”的声音 估计... 阅读全文
posted @ 2008-08-02 00:20 buffer的blogs 阅读(1186) 评论(1) 推荐(0) 编辑
摘要: 屏幕上一个点的位置具体表示方法有两种 一种就是屏幕坐标,也就是说屏幕左上角的坐标固定是 0,0.所以屏幕坐标也可以算是绝对坐标,同一个点的坐标不会因窗口的位置不同而变化. 一种是客户坐标,也就是说它是相对于窗体来说的,窗体作上角的坐标是 0,0.因此随着窗体的位置不同,客户坐标相同的两个点不一定重合. 实际上是这么一个关系,屏幕坐标相同的点一定是同... 阅读全文
posted @ 2008-08-02 00:05 buffer的blogs 阅读(395) 评论(0) 推荐(0) 编辑
摘要: PostMessage消息发出后不等消息函数处理完就执行它的下一语句 ;SendMessage消息发出后阻塞等消息函数处理完执行它的下一语句 ;也就是说,PostMessage发送完消息后立刻返回继续执行程序;SendMessage发送完消息后等待消息处理完以后,才能返回继续执行程序. 另外,PostMessage可以被Application.OnMessage捕捉到,但是SendMes... 阅读全文
posted @ 2008-07-31 23:23 buffer的blogs 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 首先是它的原型 BOOL EnumWindows( WNDENUMPROC lpEnumFunc, // 回调函数的地址--说白了就是回调函数的名字放这 LPARAM lParam // 要是枚举桌面所有窗口添0或NULL就行 ); 在来看看回调函数原型 BOOL CALLBACK EnumWindowsProc( HWND hw... 阅读全文
posted @ 2008-07-31 23:12 buffer的blogs 阅读(1249) 评论(0) 推荐(0) 编辑
摘要: m_pMainWnd是CMyApp的一个成员变量。 m_pMainWnd = new CMainWindow; //这句新建了一个CMainWindow类对象,并将其地址赋给m_pMainWnd,以后用这个指针来操作此对象 m_pMainWnd->ShowWindow(m_nCmdShow); // 这句决定了CMainWindow对象(派生自CFrameWnd类,这是一个框架类,窗口可... 阅读全文
posted @ 2008-07-31 19:52 buffer的blogs 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 函数功能:该函数定义一个系统范围的热键。 函数原型:BOOL RegisterHotKey(HWND hWnd,intid,UINT fsModifiers,UINT vk); 参数: hWnd:接收热键产生WM_HOTKEY消息的窗口句柄。若该参数NULL,传递给调用线程的WM_HOTKEY消息必须在消息循环中中进行处理。 id:定义热键的标识符。调用线程... 阅读全文
posted @ 2008-07-31 19:23 buffer的blogs 阅读(790) 评论(0) 推荐(0) 编辑
摘要: 下面这篇文章是我从别的地方转载过来的,看完觉得比较好,所以就做了个reshipment,好东西大家一起研究呵呵。为尊重别人的知识产权,事先声明一下! 什么是DLL呢? DLL(动态连接库),既然是动态,那么就是有静态连接库,我想如果这么说大家会更明白: 也许有的人在DOS下编写过程序都明白这么一件事情,我写了一个程序,里面有一个功能就是把屏幕的内容翻转在转90°打印出来,那么我需要... 阅读全文
posted @ 2008-07-31 19:04 buffer的blogs 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 如何理解LPCTSTR, L表示long指针, 这是为了兼容Windows 3.1等16位操作系统遗留下来的, 在win32中以及其他的32为操作系统中, long指针和near指针及far修饰符都是为了兼容的作用。没有实际意义。 P表示这是一个指针 C表示是一个常量 T在Win32环境中, 有一个_T宏, 这个宏用来表示你的字符是否使用UNICODE, 如果你的程序定义了UNICODE或者其... 阅读全文
posted @ 2008-07-31 18:52 buffer的blogs 阅读(392) 评论(1) 推荐(0) 编辑
摘要: CFormView类是用于窗体视图的基类。一个窗体视图是包含控件的基本视图,这些控件以对话模板资源为基础被放置好。如果在应用中想使用窗体,则可用CFormView。这些视图使用CScrollView的功能,支持滚动。 当使用MFC AppWizard构造一个应用时,可以将其视图类建于CFormView之上,使之成为一个基于窗体的应用。也可以将新窗体插入基于文档视图的应用中,即使你的应用没有初始化... 阅读全文
posted @ 2008-07-31 18:49 buffer的blogs 阅读(1989) 评论(0) 推荐(0) 编辑
摘要: *.h里面: HWND hrcWnd; ::OnRButtonUp( .. CPoint point ) { ::GetCursorPos(&point); //获取当前鼠标位置 CWnd *srcWnd=WindowFromPoint(point ); //返回鼠标所在窗口的指针 ... 阅读全文
posted @ 2008-07-30 11:36 buffer的blogs 阅读(482) 评论(0) 推荐(0) 编辑
摘要: CRect类与Windows RECT结构相似,并且还包括操作CRect对象和Windows RECT结构的成员函数。 在传递LPRECT,LPCRECT或RECT结构作为参数的任何地方,都可以传递 CRect对象来代替。 个CRect包含月于定义矩形的左上角和右下角点的成员变量。 当指定一个CRect时,必须谨慎地构造它,以使它符合规范一也就是说,使 其左坐标值小于右坐标值,使顶坐标... 阅读全文
posted @ 2008-07-30 11:34 buffer的blogs 阅读(399) 评论(0) 推荐(0) 编辑
摘要: 写一个CRect类表示一个矩形,该矩形类成员变量为:x1,y1,x2,y2,矩形左上角和右下角的坐标。然后完成以下几个成员函数: 1. CRect(); //无参数的构造函数 2. CRect(double x1_, double y1_, double x2_, double y2_); //带有4个参数的构造函数(矩形左上角和右下角的坐标) 3. bool IsSquare(); //判... 阅读全文
posted @ 2008-07-30 11:22 buffer的blogs 阅读(5188) 评论(2) 推荐(0) 编辑
上一页 1 ··· 13 14 15 16 17