![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 72
realduke2000
这个作者很懒,什么都没留下…
展开
-
win32 api 串口编程
一、基本知识 Win32下串口通信与16位串口通信有很大的区别。在Win32下,可以使用两种编程方式实现串口通信,其一是调用的Windows的API函数,其二 是使用ActiveX控件。使用API 调用,可以清楚地掌握串口通信的机制,熟悉各种配置和自由灵活采用不同的流控进行串口通信。下面介绍串口操作的基本知识。转载 2007-11-22 14:19:00 · 2494 阅读 · 0 评论 -
将一个递增和递减的有序链表,用原空间合并成递增有序的链表-O(n)复杂度
<br /><br />#include <stdio.h><br />struct LinkNode<br />{<br />int data;<br />struct LinkNode* next;<br />};<br /> <br />LinkNode* reverse(LinkNode* p)<br />{<br />//TODO: reverse given link list<br />printf("### reverse not implemented ###/r/n");<br />re原创 2010-11-29 21:45:00 · 880 阅读 · 0 评论 -
simple atoi - practise
<br /><br />// cpppractice.cpp : Defines the entry point for the console application.<br />//<br /> <br />#include "stdafx.h"<br /> <br />#define MAX 20<br /> <br />bool isdigit(char c)<br />{<br />if(c<='9' && c>='0')<br />return true;<br />return false;<原创 2010-12-03 13:32:00 · 584 阅读 · 0 评论 -
isSymmetricDigit
<br /><br />#include "stdafx.h"<br />#include <stdio.h><br />#include <iostream><br />#include <windows.h><br /> <br />using namespace std;<br /> <br />// x^y<br />int power(int x, int y)<br />{<br />if(x==0)<br />return 0;<br />if(y==0)<br />return 1;<br原创 2011-03-04 00:29:00 · 493 阅读 · 0 评论 -
windbg memory corruption
<br />http://www.informit.com/articles/article.aspx?p=1081496<br /> <br />While heap-based security attacks are much harder to exploit than their stack-based counterparts, their popularity keeps growing. Daniel Pravat and Mario Hewardt discuss security vul原创 2011-02-22 00:19:00 · 3910 阅读 · 0 评论 -
How to live debug managed code using windbg
For native code, we are easy to live debug and get the local variable, parameter, register fore function returned value.Today I want to introduce how to live debug managed code using windbg.1. .lo原创 2012-11-30 15:16:05 · 4351 阅读 · 0 评论 -
全排列和组合
最近准备M$面试,练习写了很多基础的code,很多是以前想了想没什么思路就放弃的题,如果面试过了,我会把剩下的陆续的发上来。这个排列组合算法参数有点多,不过是原创的,我觉得这两个算法组合在一起还能产生更多的题目,所以就先放上来,备份一下。没什么测试,只是试了两个组数证明大概思路应该没问题,就过了,时间紧迫啊!全排列void Perm(char str[], int le原创 2012-11-18 11:48:17 · 570 阅读 · 0 评论 -
get parameter from dump using windbg
sos.dll:~*e!clrstack -pnative code:kvp(kv -p?)TODO: 可以实现通过windbg命令来查看stack上的每层方法的argument是什么,但是需要了解的是,这些argument到底存在register的什么地方?如何通过r命令来查看?原创 2012-12-11 17:31:19 · 627 阅读 · 0 评论 -
使用windbg进行简单的debug c++代码
了解eax, esp, ebp的作用(x86上是exx, x64上是rxx)1. eax -- 数据寄存器,用来存储/读取数据,做累加的操作2. esp 指针寄存器- 堆栈指针,里面寸的都是指针,需要调用dd来查看内容3. ebp 指针寄存器 - 基址寄存器,每段函数进入后都会有如下指令集:00414330 push ebp <-- 存当前函数上层函数的基指针原创 2012-12-26 23:39:01 · 2947 阅读 · 0 评论 -
C++中的虚继承,以及利用虚继承实现的sealed类
C++ view第一期中给出了如何实现一个不能被继承的类的方法。如下:#ifdef NDEBUG#define FINAL_CLASS#else#define FINAL_CLASS : public virtual Private::NonDerivableHelper //这里的关键是virtual 只要是virtual就不能继承#endifnamespace Private{class NonDerivableHelper{ protected: NonDerivableHelp原创 2010-11-30 01:04:00 · 1042 阅读 · 0 评论 -
组合算法
// CPPConsoleApplication1.cpp : Defines the entry point for the console application.// #include "stdafx.h"#include #include #include #include #define X 100#define Y 100#define Z 100//MAXSIZE = (X+1)*(Y+1)*(Z+1)#define MAXSIZE原创 2010-06-09 15:11:00 · 727 阅读 · 0 评论 -
实战串行通讯
本文不是全面的讲述如何编写串行通讯程序,而是讨论一些实际遇到的问题。1 选择通讯方式 -- 同步还是非同步正如在《Serial communications in Microsoft Win32》等文章中提到的,同步(NonOverLapped)方式是比较简单的一种方式,编写起来代码的长度要明显少于异步(OverLapped)方式,我开始用同步方式编写了整个子程序,在 Windows98 下工作正转载 2007-11-22 16:41:00 · 837 阅读 · 0 评论 -
C语言标准库--math.h
1 三角函数double sin (double);double cos (double);double tan (double);2 反三角函数double asin (double); 结果介于[-PI/2, PI/2]double acos (double); 结果介于[0, PI]double atan (double); 反正切(主值), 结果介于[-PI/2, PI/2]double原创 2008-02-29 10:40:00 · 3066 阅读 · 0 评论 -
利用程序的返回值实现控制台程序的界面控制
最近在做和buildbot(一个持续集成工具)相关的程序 ,buildbot有一个特性,就是控制台程序全部不会谈出cmd,只是在后台运行,比如我开一个线程在后台跑,读取串口的数据,然后进行相关的处理,我如果想关闭这个串口,结束这项操作怎么告诉后台的程序呢?如果是正常情况,从键盘输入特定的字符串,或者ctrl+c就可以停止了,但是由于buildbot的自身特性,如果要实现这个功能,可能需要更改许多它原创 2007-12-11 11:57:00 · 1635 阅读 · 0 评论 -
c字符串函数源码
c字符串函数源代码 1. strlen(),计算字符串长度 int strlen(const char string) ...{ int i=0; while(string[i]) i++; return i; } 2. strcpy(), 字符串拷贝. char *strcpy(char *destination, const char *source) ...原创 2008-03-10 17:22:00 · 1223 阅读 · 2 评论 -
c的堆栈,内存分配
一、一个经过编译的C/C++的程序占用的内存分成以下几个部分:1、栈区(stack):由编译器自动分配和释放 ,存放函数的参数值、局部变量的值等,甚至函数的调用过程都是用栈来完成。其操作方式类似于数据结构中的栈。2、堆区(heap) :一般由程序员手动申请以及释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式类似于链表。3、全局区(静态区)(static)原创 2008-03-10 17:37:00 · 4357 阅读 · 1 评论 -
练习题1: A+B
描述 计算a加b。 输入 一行,用空格分开的两个整数a和b。其中0≤a, b≤10000。 输出 一个整数,为a加b的和。 样例输入 1 2样例输出 3 My code // CPPConsoleApplication1.cpp : Defines the entry point for the console application.//#include原创 2010-05-28 17:36:00 · 684 阅读 · 0 评论 -
练习题2: pow(有道编程大赛)
描述 计算a的b次方对9907取模的值。 输入 第一行有一个正整数T,表示有T组测试数据。接下来T行,每行是一组测试数据,包含两个整数a和b。其中T输出 有T行,依次输出每组数据的结果。 样例输入 31 22 33 4样例输出 1881原创 2010-05-28 17:48:00 · 688 阅读 · 0 评论 -
练习题3: Sibonacci
描述 菲波那切数列可以用下列的式子表示:f(1)=1f(2)=1f(n)=f(n-1)+f(n-2) (n>=3)现在我们根据这个规则定义另一种数列 命名为"辛波那切数列", 它是这样定义的:s(x)=0 (xs(x)=1 (0s(x)=s(x-1)+s(x-3.14) (x>=1)现在需要计算出s(x) MOD 1000000007的值。 输入 第一行有一个正整数T表示有T组测试数据。接下来T行原创 2010-05-28 17:49:00 · 500 阅读 · 0 评论 -
malloc到未初始化的内存
在最近开发过程中发现一个malloc到未初始化内存的错误.在使用CLISH(一款命令行开源软件)的时候,每次这个程序退出的时候都会发生core dump,错误为invalid pointer: 0x00007ffff02b35d8 .但是这个错误只在某一台机器上发生错误,在完全相同配置(软硬件)的另外一台机器的时候,并不发生错误,调整clish加载的xml文件的之后,这个错误也会消失....原创 2016-09-20 09:41:23 · 3492 阅读 · 0 评论