摘要:说道定时器,很多人都会想到Windows定时器SetTimer吧!其实,项目里面原本确实是使用这种方法实现动画效果的,但是后来问题出现了!由于WM_TIMER消息优先级比较低,常常被丢失,导致一个WM_MOUSEMOVE消息都会影响整个动画的效果。 这时我就考虑,是否能给定时器创建一个单独的线程,接...
阅读全文
随笔分类 - C++/C
摘要:QueryPerformanceFrequency() - 基本介绍类型:Win32API原型:BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);作用:返回硬件支持的高精度计数器的频率。返回值:非零,硬件支持高精度计数器;零,硬件不...
阅读全文
摘要:BOOLEAN MmIsAddressValid( _In_PVOID VirtualAddress);ParametersVirtualAddress[in]A pointer to the nonpaged virtual address to check. The caller must e...
阅读全文
摘要:1. 存分配的三个方法:(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。(2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中...
阅读全文
摘要:从微软站点:检查指针有效性下面的示例使用 _CrtIsValidPointer 验证给定的内存范围对于读或写是否有效。_ASSERTE(_CrtIsValidPointer( address, size, TRUE );下面的示例使用 _CrtIsValidHeapPointer 验证指针指向本地堆...
阅读全文
摘要:最近在写网络上的东西,程序经过长时间的运行,会出现崩溃的问题,经过DUMP文件的查看,发现在recv的地方接收返回值的时候,数据的长度异常的大差不多16亿多字节.而查看分配后的char指针显示为错误的指针,这可能是接收数据不对应产生的问题解决思路如下: 1.对返回值长度进行判断,如果超过项目内最大...
阅读全文
摘要:遇到一未找到必然出现条件的崩溃,不知道什么时候能触发崩溃,崩溃dump显示,试图访问了非法的内存或者写入了非法的内存此时如下两个函数就比较有用了:[cpp]view plaincopyBOOLWINAPIIsBadReadPtr(__inconstVOID*lp,__inUINT_PTRucb);B...
阅读全文
摘要:判断调用进程是否拥有对指定字符串指针的读取权限,函数原型如下:BOOL IsBadStringPtr( LPCTSTR lpsz, UINT_PTR ucchMax);参数:lpsz: 输入参数,指向字符串。ucchMax:输入参数,读取字符串的最大长度。返回值:返回BOOL值,表示当前进程是否拥有...
阅读全文
摘要:什么是lib文件,lib和dll的关系如何 (2008-04-18 19:44:37)(1)lib是编译时需要的,dll是运行时需要的。如果要完成源代码的编译,有lib就够了。如果也使动态连接的程序运行起来,有dll就够了。在开发和调试阶段,当然最好都有。(2)一般的动态库程序有lib文件和dll文...
阅读全文
摘要:知识这个东西,真是知道的越多就不知道的越多,C/C++这塘水得多深啊,哈哈。看下面3个片段:1void fun(char a[100]) {2fprintf(stderr, "%s\n", a);3}45int main(void) {6char aa[200] = "abcdef";7fun(aa...
阅读全文
摘要:C++: 单例模式和缺陷实现一个单例模式1class Singleton {2private:3Singleton() { cout show(); 26return 0;27}编译执行上面的代码,输出如下:Singleton::constructorSingleton::show我们发现上面的输出...
阅读全文
摘要:看一个小例子:1#include 23using namespace std;45class A {6public:7A() { cout 23using namespace std;45class A {6public:7A() { cout << "A::A()" << endl; }8~A()...
阅读全文
摘要:眼见为实(1):C++基本概念在编译器中的实现对于C++对象模型,相信很多程序员都耳熟能详。 本文试图通过一个简单的例子演示一些C++基本概念在编译器中的实现,以期达到眼见为实的效果。本文的演示程序(http://www.fmddlmyy.cn/cpptest.zip)可以从我的个人主页下载。程序包...
阅读全文
摘要:DLL搜索路径和DLL劫持环境:XP SP3 VS2005作者:magictong 为什么要把DLL搜索路径(DLL ORDER)和DLL劫持(DLL Hajack)拿到一起讲呢?呵呵,其实没啥深意,仅仅是二者有因果关系而已。可以讲正是因为Windows系统下面DLL的搜索路径存在的漏洞才有了后来的...
阅读全文
摘要:1、 DLL的概念可以向程序提供一些函数、变量或类。静态链接库与动态链接库的区别:(1)静态链接库与动态链接库都是共享代码的方式。静态链接库把最后的指令都包含在最终生成的EXE文件中了;动态链接库不必被包含在最终EXE文件中,EXE文件执行时可以“动态”地引用和卸载这个与EXE独立的DLL文件。(2...
阅读全文
摘要:CString在当今软件设计界里还是小有名气的,说它是MFC中使用的最多的类一点也不过,然而在使用sdk编windows程序的时候,确不能利用CString类,只能用sdk的运行时库,比如strlen,strcpy,strstr等等,本文讨论的是在非mfc程序中使用CString类的方法,算是个引子...
阅读全文
摘要:参考链接:http://wenku.baidu.com/view/68fc340c79563c1ec5da714b.html
阅读全文
摘要:最近用WIN32 DLL,为了方便要用到MFC的一些库,又不想转工程,就网上找了很多方法,发现没有详细的介绍,有的也行不通,现在成功在WIN32 DLL中使用了MFC,记录一下以防以后用到忘记一、修改预编译头文件(stdafx.h)在stdafx.h文件中添加下面代码,包含一些MFC的头文件,这些可...
阅读全文
摘要:C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。 const_cast,字面上理解就是去const属性。 static_cast,命名上理解是静态类型转换。如int转换成char。 dynamic_cast,命名上理解是动态类型转换。如子类和父类之间的多态类型转换。 reinterpreter_cast,仅仅重新解释类型,但没有进行二进制的转换。 4种类型转换的格式,如: TYPE B = static_cast(TYPE)(a) cons...
阅读全文
摘要:自己平时收集的一些技巧与心得,这里分享出来,普及一下知识。 1.如何在Release状态下进行调试 Project->Setting=>ProjectSetting对话框,选择Release状态。C/C++标签中的Category选General,Optimizations选Disable(Debug),Debut info选Program Database。在Link标签中选中Generate debug info复选框。 注:只是一个介乎Debug和Release的中间状态,所有的ASSERT、VERIFY都不起作用,函数调用方式已经是真正的调用,而不查表,但是这种状态下Qui
阅读全文

浙公网安备 33010602011771号