随笔分类 - C++
嵌入式c/C++
摘要:公司一直在搞这方面的开发,想把这方面开发需要注意的地方纪录下来。原来做的上层软件的开发,觉得绝大多数与数据库和业务流程打交道,基本上调试不怎么费时费事,出了问题很快调试跟踪就能搞定,但嵌入式开发就有很大不同,首先是调试很困难,基本靠日志进行定位,出问题时,也是要看堆栈、寄存器,和汇编。vxWorks中对一个函数的入参和出参放在哪些寄存器要非常熟悉。而linux下除精通GDB外,也需要知道一些寄存器...
阅读全文
多线程专题3
摘要:进程之间共享数据的两种方法:1。共享数据段#pragma data_seg("SS")const int MYVARIANT = 123456;#pragma data_seg()#pragma comment(linker,"/SECTION:SS,RWS") LINK选项,创建数据段2。内存映射文件HANDLE hFile = CreateFile("E:\\aa.txt",GENERIC_A...
阅读全文
多线程调度专题2
摘要:UINT ThreadProc3(LPVOID pParam){WaitForSingleObject(hEvent[0],INFINITE);for (int i = 0; i < 10; i++){g_cArray[i] = 'a';Sleep(1);} TRACE("Second T3");SetEvent(hEvent[0]);SetEvent(hEvent[2] );return ...
阅读全文
多线程同步问题专题(1)
摘要:线程同步是一个非常大的话题,包括方方面面的内容。从大的方面讲,线程的同步可分用户模式的线程同步和内核对象的线程同步两大类。用户模式中线程的同步方法主要有原子访问和临界区等方法。其特点是同步速度特别快,适合于对线程运行速度有严格要求的场合。在MFC中封装了CCritionSection等对象可以对共享资源进行锁定 内核对象的线程同步则主要由事件、等待定时器、信号量以及信号灯等内核对象构成。由于这种...
阅读全文
TCP/IP卷一(3)
摘要:chapter3:IP:网际协议从概念上说, I P路由选择是简单的,特别对于主机来说。如果目的主机与源主机直接相连(如点对点链路)或都在一个共享网络上(以太网或令牌环网),那么I P数据报就直接送到目的主机上。否则,主机把数据报发往一默认的路由器上,由路由器来转发该数据报。大多数的主机都是采用这种简单机制。为一个网络指定一个路由器,而不必为每个主机指定一个路由器,这是I P路由选择机制的另一个基...
阅读全文
TCP/IP卷一(2)
摘要:链路层介绍:(1)为I P模块发送和接收I P数据报;( 2)为A R P模块发送A R P请求和接收A R P应答;(3)为R A R P发送R A R P请求和接收R A R P应答尾部封装 提高效率而做,现在已经废除以太网的数据封装格式,注意数据长度为46-1500 bytesS L I P的全称是Serial Line IP。它是一种在串行线路上对I P数据报进行封装的简单形式PPP:点对...
阅读全文
TCP/IP卷一(1)
摘要:第一章:Tcp/ip协议中,如果采用可靠的连接,则需要在tcp协议中采用超时重发,发送接受端确认等机制。在ip层还有ICMP,IGMP协议,分别是报文控制协议,组管理协议,在链路层中有ARP,RARP协议和硬件相关处理。通常在应用层是用户进程运输层有TCP,UDP网络层 IP,ICMP,IGMP协议链路层中有arp,rarpP i n g和Tr a c e r o u t e 它们都使用了I C ...
阅读全文
Net Programming
摘要:同步方式指的是发送方不等接收方响应,便接着发下个数据包的通信方式;而异步指发送方发出数据后,等收到接收方发回的响应,才发下一个数据包的通信方式。阻塞套接字是指执行此套接字的网络调用时,直到成功才返回,否则一直阻塞在此网络调用上,比如调用recv()函数读取网络缓冲区中的数据,如果没有数据到达,将一直挂在recv()这个函数调用上,直到读到一些数据,此函数调用才返回;而非阻塞套接字是指执行此套接字的...
阅读全文
设备坐标
摘要:设备坐标(Device Coordinate)又称为物理坐标(Physical Coordinate),是指输出设备上的坐标。通常将屏幕上的设备坐标称为屏幕坐标。设备坐标用对象距离窗口左上角的水平距离和垂直距离来指定对象的位置,是以像素为单位来表示的,设备坐标的X轴向右为正,Y轴向下为正,坐标原点位于窗口的左上角。 逻辑坐标(Logical Coordinate)是系统用作记录的坐标。在缺省的...
阅读全文
删除内存树结构的时候,千万注意内存泄漏问题,采用递归比较简单。
摘要:测试代码:void CTestTreeDlg::OnBuild() { TreeStruct * pTemp; pTemp = new TreeStruct(); pTemp->m_strProperty = "Root"; pTemp->AddSon("A")->DelSon()->AddBrother("B"); pTemp->AddSon("CCC"); pTemp-...
阅读全文
树结构的遍历与建立树
摘要:void CAbcdefDlg::buildTree(baseDataStruct *pBase,HTREEITEM hParent1){ HTREEITEM hParent; hParent= m_myTree.InsertItem(pBase->m_sProperty,0,0,hParent1); if(pBase->m_pSonTree) { buildTree(pBa...
阅读全文
初始化COM
摘要:首先导入类型库#import "xxx.dll" CoInitialize(NULL); //notice _clsNewDentalEditor *p; //declare the pointer HRESULT ht = CoCreateInstance(CLSID_clsNewDentalEditor, NULL, CLSCTX_INPROC_S...
阅读全文
GNU Debian Linux学习
摘要:刚在虚拟机上安装好 debian linux,运行起来觉得很流畅, Debian linux的市场比red hat稍微少一些,但这个非商业运作的linux系统,设计目的就是为了全天侯运行而不死机,要求较高的稳定性,并且包管理系统也比较好。
阅读全文
vc调用vb DLL方法
摘要:1。如果vb是OCX,则会自动生成封装类2。一般的DLL CoInitialize(NULL); _clsNewDentalEditor *p; HRESULT ht = CoCreateInstance(CLSID_clsNewDentalEditor, NULL, CLSCTX_INPROC_SERVER, IID__clsNewDentalEditor, (void **)&...
阅读全文
vc++.Net Calling WebService
摘要:using namespace localhost;main(){ Service1 *s1 = new Service1(); System::String * p; p = s1->AddNum("ABC","DEF");}
阅读全文
LeadTools介绍
摘要:(1) 对显示设备的全面支持:在显示时,你的程序中无需考虑是哪种显示模式,如16色还是真彩色。LeadTools为你做了所有的事。当然你也可以通过设置参数获得对显示设备更多的控制。你还可以实现自己的调色板。 (2) 支持多种文件格式:表10.1是LeadTools所支持的常用文件格式,其中读表示用LeadTools能打开的文件格式,写表示LeatTools能存成的文件格式: (3) 图象处理:如二...
阅读全文
堆排序中(小根堆的建法)
摘要:void Sift(int a[],int i,int n) //sift down.{ int j = 0; while((j = 2*i+1)a[j+1]) j++; //now a[j] is the min of the triple. //exchange the node if(a[j]=0;i--) Sift(a,i,n);}void HeapSo...
阅读全文
各种排序算法比较
摘要:闲来无事,拿出数据结构的排序算法做一比较:第一种算法为选择排序,二为插入排序,三是冒泡排序,六是二分法插入排序,随机产生了10000个数字#include "stdafx.h"#include #include "windows.h"#include "stdlib.h"#include "time.h"using namespace std;const int count = 10000;con...
阅读全文
10 to 2
摘要:方法一: i=sizeof(int)*8; scanf("%d",&a);int j = a>>i&1;for(;i>0;i--,printf("%d",a>>i&1)); 方法二:long dnum;char * cnum;cnum = new char[100];printf("please input a decimal number:\n");scanf("%ld",&dnum);ltoa...
阅读全文
浙公网安备 33010602011771号