- 博客(81)
- 资源 (35)
- 问答 (1)
- 收藏
- 关注
转载 性价比还是Arduino Duemilanove 2009比较好
:使用Atmel Atmega168 328处理器,因其支持者众多,已有公司开发出来32位的MCU平台支持arduino。目前arduino的控制板最新的为Arduino Uno,如下图:国内使用比较多的为Arduino Duemilanove 2009,主要原因是Uno的usb控制芯片封装方式改变,制造成本上升,其他变化不大,性价比还是Arduino Duemilanove
2012-06-30 15:26:03 1764
转载 C r e a t e P r o c e s s的b I n h e r i t H a n d l e s参数
使用对象句柄继承性时要执行的下一个步骤是让父进程生成子进程。这要使用C r e a t eP r o c e s s函数来完成:下一章将详细介绍这个函数的用法,不过现在我想要让你注意b I n h e r i t H a n d l e这个参数。一般来说,当生成一个进程时,将为该参数传递FA L S E。该值告诉系统,不希望子进程继承父进程的句柄表中的可继承句柄。但是,
2012-06-29 10:23:30 4411
转载 3.3.1 对象句柄的继承性
3.3.1 对象句柄的继承性只有当进程具有父子关系时,才能使用对象句柄的继承性。在这种情况下,父进程可以使用一个或多个内核对象句柄,并且该父进程可以决定生成一个子进程,为子进程赋予对父进程的内核对象的访问权。若要使这种类型的继承性能够实现,父进程必须执行若干个操作步骤。首先,当父进程创建内核对象时,必须向系统指明,它希望对象的句柄是个可继承的句柄。请记住,虽然内核对象句柄具有继
2012-06-29 10:09:38 525
转载 3.3 跨越进程边界共享内核对象
3.3 跨越进程边界共享内核对象许多情况下,在不同进程中运行的线程需要共享内核对象。下面是为何需要共享的原因:• 文件映射对象使你能够在同一台机器上运行的两个进程之间共享数据块。• 邮箱和指定的管道使得应用程序能够在连网的不同机器上运行的进程之间发送数据块。• 互斥对象、信标和事件使得不同进程中的线程能够同步它们的连续运行,这与一个应用程序在完成某项任务时需要将情况通知另一个应
2012-06-29 10:06:50 465
转载 3.2.2 关闭内核对象
3.2.2 关闭内核对象无论怎样创建内核对象,都要向系统指明将通过调用C l o s e H a n d l e来结束对该对象的操作:该函数首先检查调用进程的句柄表,以确保传递给它的索引(句柄)用于标识一个进程实际上无权访问的对象。如果该索引是有效的,那么系统就可以获得内核对象的数据结构的地址,并可确定该结构中的使用计数的数据成员。如果使用计数是0,该内核便从内存中撤消该内核对象。
2012-06-29 10:05:38 693
转载 由于句柄值实际上是放入进程句柄表的索引,因此这些句柄 是与进程相关的,并且不能由其他进程成功地使用
用于创建内核对象的所有函数均返回与进程相关的句柄,这些句柄可以被在相同进程中运行的任何或所有线程成功地加以使用。该句柄值实际上是放入进程的句柄表中的索引,它用于标识内核对象的信息存放的位置。因此当调试一个应用程序并且观察内核对象句柄的实际值时,会看到一些较小的值,如1,2等。请记住,句柄的含义并没有记入文档资料,并且可能随时变更。实际上在Windows 2000中,返回的值用于标识
2012-06-29 09:58:01 696
转载 CreateFile函数详解 不仅仅是对文件的操作 还有对系统设备的IO的操作
CreateFile函数详解CreateFileThe CreateFile function creates or opens the following objects and returns a handle that can be used to accessthe object: files pipes mailslots communications res
2012-06-29 09:51:50 937
转载 3.2.1 创建内核对象
3.2.1 创建内核对象 当进程初次被初始化时,它的句柄表是空的。然后,当进程中的线程调用创建内核对象的函数时,比如C r e a t e F i l e M a p p i n g,内核就为该对象分配一个内存块,并对它初始化。这时,内核对进程的句柄表进行扫描,找出一个空项。由于表3 - 1中的句柄表是空的,内核便找到索引1位置上的结构并对它进行初始化。该指针成员将被
2012-06-29 09:32:52 596
转载 3.2 进程的内核对象句柄表
3.2 进程的内核对象句柄表当一个进程被初始化时,系统要为它分配一个句柄表。该句柄表只用于内核对象,不用于用户对象或G D I对象。句柄表的详细结构和管理方法并没有具体的资料说明。通常我并不介绍操作系统中没有文档资料的那些部分。不过,在这种情况下,我会进行例外处理,因为,作为一个称职的Wi n d o w s程序员,必须懂得如何管理进程的句柄表。由于这些信息没有文档资料,因此不
2012-06-29 09:27:56 513
转载 除了内核对象外,你的应用程序也可以使用其他类型的对象
除了内核对象外,你的应用程序也可以使用其他类型的对象,如菜单、窗口、鼠标光标、刷子和字体等。这些对象属于用户对象或图形设备接口( G D I)对象,而不是内核对象。当初次着手为Wi n d o w s编程时,如果想要将用户对象或G D I对象与内核对象区分开来,你一定会感到不知所措。比如,图标究竟是用户对象还是内核对象呢?若要确定一个对象是否属于内核对象,最容易的方法是观察创建该对
2012-06-29 09:17:56 603
转载 MMFShare
#include HANDLE s_hFileMap=NULL;// This macro evaluates to the number of elements in an array. #define chDIMOF(Array) (sizeof(Array) / sizeof(Array[0]))inline void chMB(PCSTR s) { char szTMP[
2012-06-28 21:52:32 630
转载 3.1.1 内核对象的使用计数
3.1.1 内核对象的使用计数内核对象由内核所拥有,而不是由进程所拥有。换句话说,如果你的进程调用了一个创建内核对象的函数,然后你的进程终止运行,那么内核对象不一定被撤消。在大多数情况下,对象将被撤消,但是如果另一个进程正在使用你的进程创建的内核对象,那么该内核知道,在另一个进程停止使用该对象前不要撤消该对象,必须记住的是,内核对象的存在时间可以比创建该对象的进程长。内核知
2012-06-28 20:48:46 560
转载 3.1 什么是内核对象
3.1 什么是内核对象作为一个Wi n d o w s软件开发人员,你经常需要创建、打开和操作各种内核对象。系统要创建和操作若干类型的内核对象,比如存取符号对象、事件对象、文件对象、文件映射对象、I / O完成端口对象、作业对象、信箱对象、互斥对象、管道对象、进程对象、信标对象、线程对象和等待计时器对象等。这些对象都是通过调用函数来创建的。例如, C r e a t e F i l
2012-06-28 20:47:35 584
转载 内核对象
准确地理解内核对象对于想要成为一名Wi n d o w s软件开发能手的人来说是至关重要的。内核对象可以供系统和应用程序使用来管理各种各样的资源,比如进程、线程和文件等。
2012-06-28 20:44:13 419
转载 BOOL FileReverse(PCTSTR pszPathname, PBOOL pfIsTextUnicode)
#define chDIMOF(Array) (sizeof(Array) / sizeof(Array[0]))#define FILENAME TEXT("FILEREV.DAT")inline void chMB(PCSTR s) { char szTMP[128]; GetModuleFileNameA(NULL, szTMP, chDIMOF(szTMP));
2012-06-28 19:53:05 708
转载 MFC 文件打开对话框
{ CString FilePathName; CFileDialog dlg(TRUE);///TRUE为OPEN对话框,FALSE为SAVE AS对话框 if(dlg.DoModal()==IDOK) FilePathName=dlg.GetPathName(); } 文件名保存在了FilePathName里,然后处理吧
2012-06-28 19:43:33 537
转载 2.9.2 资源2.9.3 确定文本是A N S I文本还是U n i c o d e文本
2.9.2 资源当资源编译器对你的所有资源进行编译时,输出文件是资源的二进制文件。资源(字符串表、对话框模板和菜单等)中的字符串值总是写作U n i c o d e字符串。在Windows 98和Wi n d o w s2 0 0 0下,如果应用程序没有定义U N I C O D E宏,那么系统就会进行内部转换。例如,如果在编译源代码模块时没有定义U N I C O D E,调用L
2012-06-28 18:52:45 1861
转载 详解C++版的_countof
详解C++版的_countof (2012-01-05 09:40:48)转载▼标签: 杂谈分类: VCPlusPlus本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yuanmanzheng/archive/2010/04/11/5472967.aspx在stdlib.h里有
2012-06-28 16:42:55 2270
转载 在VC6所带的stdlib.h里没有这个_countof()宏的
以对于stdlib.h里的这个_countof(),如果传递一个指针给它,编译就会失败。同时,需要指出的是,VC6对模板支持的很不好,一些复杂的模板语法就编译不了。根据我的测试,就这里所说的_countof(),在VC6里就编译不了。VC2005/2008就已经支持的很好的。所以这个_countof()是在VC2005中才提供的。在VC6所带的stdlib.h里没有这个_countof()
2012-06-28 16:41:50 1044
转载 Wi n d o w s函数l s t r c m p和l s t r c m p i是作为对Wi n d o w s函数 C o m p a r e S t r i n g的调用来实现
有两个字符串函数,即l s t r c m p和l s t r c m p i,它们的行为特性与等价的C运行期函数是不同的。C运行期函数s t r c m p、s t r c m p i、w c s c m p和w c s c m p i只是对字符串中的代码点的值进行比较,这就是说,这些函数将忽略实际字符的含义,只是将第一个字符串中的每个字符的数值与第二个字符串中的字符的数值进行比较。
2012-06-28 16:21:24 5788
转载 2.9 成为符合A N S I和U n i c o d e的应用程序
2.9 成为符合A N S I和U n i c o d e的应用程序即使你不打算立即使用U n i c o d e,最好也应该着手将你的应用程序转换成符合U n i c o d e的应用程序。下面是应该遵循的一些基本原则:• 将文本串视为字符数组,而不是c h a r s数组或字节数组。• 将通用数据类型(如T C H A R和P T S T R)用于文本字符和字符串。• 将显
2012-06-28 15:55:22 1344
转载 StrCat <shlwapi.h> strcat <string.h> wcscat <string.h>
StrCat Function -------------------------------------------------------------------------------- Appends one string to another. Syntax LPTSTR StrCat( LP
2012-06-28 15:33:22 593
原创 <shlwapi.h> StrCat(a1,a2);
#include "stdafx.h"#include //加这个头文件 #pragma comment(lib,"shlwapi.lib")int main(int argc, char* argv[]){ //for(int i=0;i<1000;i++) //printf("Hello World%d!\n",i); char a1[100]="Hell
2012-06-28 15:30:57 751
转载 shlwapi.h所包含的函数
1. 加入#include .2. 在project(工程)->setting(设置)->link(连接)下objiect/library modules(对象/库模块)中加入shlwapi.lib.PathAddBackslash //路径后添加反斜杆 CString.GetBuffer(_MAX_PATH)PathAddExtension /
2012-06-28 15:24:48 867
转载 Shlwapi.h的所有函数列表
下面是Shlwapi.h中的所有函数列表,注意:在使用之前一定要查询最新的MSDN,以确定哪些函数有安全隐患,因而是不被推荐使用的。String Function=====================================CharLowerWrapWCharUpperBuffWrapWChrCmpICompareStringWrapWGetAcceptLa
2012-06-28 15:16:24 1662
转载 2.8.4 Wi n d o w s字符串函数
2.8.4 Wi n d o w s字符串函数Wi n d o w s还提供了一组范围很广的字符串操作函数。这些函数与C运行期字符串函数(如s t r c p y和w c s c p y)很相似。但是该操作系统函数是操作系统的一个组成部分,操作系统的许多组件都使用这些函数,而不使用C运行期库。建议最好使用操作系统函数,而不要使用C运行期字符串函数。这将有助于稍稍提高你的应用程序的运
2012-06-28 15:13:51 1213
转载 Wi n E x e c和O p e n F i l e等,只是为了实现与1 6位Wi n d o w s程 序的向后兼容而存在
Windows API中的某些函数,比如Wi n E x e c和O p e n F i l e等,只是为了实现与1 6位Wi n d o w s程序的向后兼容而存在,因此,应该避免使用。应该使用对C r e a t e P r o c e s s和C r e a t e F i l e函数的调用来取代对Wi n E x e c和O p e n F i l e函数的调用。从系统内部来讲,老
2012-06-28 15:03:32 3408
转载 2.1 字符集
2.1 字符集软件的本地化要解决的真正问题,实际上就是如何来处理不同的字符集。多年来,许多人一直将文本串作为一系列单字节字符来进行编码,并在结尾处放上一个零。对于我们来说,这已经成了习惯。当调用s t r l e n函数时,它在以0结尾的单字节字符数组中返回字符的数目。问题是,有些文字和书写规则(比如日文中的汉字就是个典型的例子)的字符集中的符号太多了,因此单字节(它提供的符号
2012-06-28 14:52:26 388
原创 UNICODE,_UNICODE
else { // TODO: code your application's behavior here. CString strHello; strHello.LoadString(IDS_HELLO); cout << (LPCTSTR)strHello << endl; TCHAR str[256]=_TEXT("HelloWorld\n"); _tprintf(
2012-06-27 21:20:20 536
转载 2.8.2 Wi n d o w s定义的U n i c o d e数据类型
Wi n d o w s头文件定义了表2 - 3列出的数据类型。表2-3 Uincode 数据类型数据类型说明W C H A R U n i c o d e字符P W S T R 指向U n i c o d e字符串的指针P C W S T R 指向一个恒定的U n i c o d e字符串的指针这些数据类型是指U n i c o d e字符和字符串。Wi n d o w
2012-06-27 20:45:54 1599
转载 2.8 如何编写U n i c o d e源代码
2.8 如何编写U n i c o d e源代码M i c r o s o f t公司为U n i c o d e设计了Windows API,这样,可以尽量减少对你的代码的影响。实际上,你可以编写单个源代码文件,以便使用或者不使用U n i c o d e来对它进行编译。只需要定义两个宏(U N I C O D E和_ U N I C O D E),就可以修改然后重新编译该源文件。
2012-06-27 20:12:41 1521
转载 Unicode & COM
2.6 需要注意的问题下面让我们进一步明确一下“M i c r o s o f t公司对U n i c o d e支持的情况”:• Windows 2000既支持U n i c o d e,也支持A N S I,因此可以为任意一种开发应用程序。• Windows 98只支持A N S I,只能为A N S I开发应用程序。• Windows CE只支持U n i c o d e,只
2012-06-27 20:10:54 533
转载 要为Windows CE开发应用程序,必须懂得U n i c o d e
2.5 Windows CE与U n i c o d eWindows CE操作系统是为小型设备开发的,这些设备的内存很小,并且不带磁盘存储器。你可能认为,由于M i c r o s o f t公司的主要目标是建立一种尽可能小的操作系统,因此它会使用A N S I作为自己的字符集。但是M i c r o s o f t公司并非鼠目寸光,他们懂得, Windows CE的设备要在世界
2012-06-27 19:50:19 1449
转载 Windows 2000是使用U n i c o d e从头进行开发的
2.3 Windows 2000与U n i c o d eWindows 2000是使用U n i c o d e从头进行开发的,用于创建窗口、显示文本、进行字符串操作等的所有核心函数都需要U n i c o d e字符串。如果调用任何一个Wi n d o w s函数并给它传递一个A N S I字符串,那么系统首先要将字符串转换成U n i c o d e,然后将U n i c o
2012-06-27 18:29:18 1288
转载 Platform SDK for Windows Xp & Windows 2003
根据微软的说法,VC6支持的最后一个SDK是windows2003 february版本。幸运的是在网上找到了windowsxp sp2版本。在这里感谢网友发现的下载地址:Platform SDK XP-SP2:http://www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm
2012-06-27 17:11:34 714
转载 ErrorLookUp
// Get the error code DWORD dwError = GetDlgItemInt(IDC_ERRORCODE, NULL, FALSE); HLOCAL hlocal = NULL; // Buffer that gets the error message string // Get the error code's textua
2012-06-27 11:08:54 541
转载 实验九 8位硬件加法器的设计
module key_led(clock,key,led,hex,bin,seg,dig,ledin,data);input clock; //系统时钟(48MHz)input[7:0] key; //按键输入(KEY1~KEY8)output[7:0] led; //LED输出(LED1~LED8)output[15:0]hex; //4位16
2012-06-26 20:38:10 1759
转载 Modelsim的各个版本_PE_DE_SE
Modelsim的各个版本_PE_DE_SE ModelSim PE (Personal Edition) is the industry-leading, Windows-based simulator for VHDL, Verilog, or mixed-language simulation environments offering a very cost effe
2012-06-17 08:41:44 1817
转载 verilog -- case、casez、casex
verilog -- case、casez、casex在case语句中,敏感表达式与各项值之间的比较,是一种全等比较。casez与casex语句是case语句的两种变体,三者的表示形式中唯一的区别是三个关键词case、casez、casex的不同。在casez语句中,如果分支表达式某些位的值为高阻z,那么对这些位的比较就会忽略,不予考虑,而只关注其他位的比较
2012-06-15 22:19:50 4790
DownForPhpExt.rar
2016-02-17
网站被迫下线提醒功能
2016-05-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人