C++
文章平均质量分 83
知平软件
上海知平软件的博客
展开
-
用C++模板实现正则表达式
好几年前写的代码了,贴出来跟大家分享一下。 嘿嘿,支持[A-Za-z0-9_]+@[A-Za-z0-9_]+.[A-Za-z0-9_]+(.[A-Za-z0-9_]+)*还有很多Bug,正在测试当中,但是贴出来的代码是完全可以通过的。呵呵!Template.h#ifndef __TEMPLATE_H__ #define __TEMPLATE_H__ #include原创 2009-01-23 15:49:00 · 2519 阅读 · 0 评论 -
应用程序调试技术视频各集技术概述
这是第一部分,Windows平台下的应用程序调试技术讲座视频, 视频购买地址:http://product.china-pub.com/3502590 第1讲 准备调试环境 调试符号文件的作用; 创建符号文件的方法; 在调试器里有无符号文件的区别; 公开符号版本和私有符号版本的区别; 创建公开符号文件的方法;原创 2012-03-01 15:34:51 · 4834 阅读 · 0 评论 -
VC编写的程序不能在其他机器上运行的解决方案(续)
我在前面的文章里面提到由于side-by-side问题导致的VC编写的程序不能正常启动的问题的解决方案,这种方法是针对于单个可执行文件的解决方案,但是有的时候你可能会碰到另外一种情况—也是由于side-by-side问题导致的,你的程序支持插件,当你的程序试图加载一个依赖于CRT的DLL的时候,Windows告诉你不能加载DLL。 比如微软在06年发布了CLR的开源版本,你在自己机器上用V原创 2009-02-19 20:40:00 · 2245 阅读 · 0 评论 -
VC编写的程序不能在其他机器上运行的解决方案
有的时候,你在Visual C++上面经过好几个月的辛勤努力,终于将程序编写完成并且测试完毕,然而当你试图在客户的发布机上运行刚写好的程序时,有可能会碰到类似下面的错误,操作系统告诉你“由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题”:一般情况下,这个问题都是由于程序不能找到所需要的C运行库(CRT)而引起的。 在Windows XP SP2以后,原创 2009-02-15 21:41:00 · 1856 阅读 · 0 评论 -
调试器基础
在Windows中,Windows API CreateProcess提供了一个枚举值允许你的程序调试其他的程序,比如下面的代码就是创建一个调试器的最基本的步骤:1. 启动一个程序,并指定你希望调试这个程序—例如DEBUG_PROCESS2. 然后监听Windows给你的程序发送的各种调试消息,例如被调试程序正在加载一个新的DLL(不管是静态调用还是动态调用原创 2009-02-10 00:41:00 · 1521 阅读 · 0 评论 -
使用Signature Tool自动生成P/Invoke调用Windows API的C#函数声明
在网上看到很多网友在.NET程序中调用Win32 API,或者调用自己的VC DLL里面提供的函数的时候,总是被生成正确的C函数在C#中的正确声明而困扰,而生成C++中结构体在C#中的声明 - 天,没有什么比这个更让人恶心的事情了。因为:1. 如果你的结构体里面包含 TCHAR字符串成员的话,需要考虑ANSI和Unicode DLL的情形。2. 如果你的结构原创 2009-02-05 20:53:00 · 41194 阅读 · 43 评论 -
Windows的用户管理中的用户模拟
用户模拟(Impersonation)是自从Windows 2000时引入的强大的功能。Windows系统甚至允许用户模拟(Impersonation)被用在客户端/服务端的编程模型里面。 在传统模式下,比如一个远程服务器可以提供文件、打印机或者数据库服务,希望使用这些资源的客户端可以发送一个请求给远程服务器,这时候,远程服务器必须要确保客户端有权限来访问它请求的资源,于是远程服务器查询原创 2009-02-06 20:34:00 · 2866 阅读 · 0 评论 -
解决LoadImage加载图片报告内存不足的错误
在使用Win32 API LoadImage加载大量图片,或者加载很大的图片的时候,你可能会碰到图片加载失败,而且调用GetLastError显示错误是“内存不足,无法完成此操作!”,打开任务管理器,却发现系统里面还有大量的内存空闲。比如使用下面的代码你就会碰到这个错误—当然你要准备大量的BMP图片:#include "StdAfx.h"#include "SampleBa原创 2009-02-02 22:19:00 · 6114 阅读 · 0 评论 -
使用CRT调试内存分配堆来找出未释放的内存空间
忘记释放已经分配的内存是一种常见的编程错误,当然我指的是在C++编程当中,例如下面的代码里面就存在一个忘记释放内存的编程错误。我个人觉得忘记释放内存的编程错误是不可避免的,毕竟程序员都是人,困了,心情不好了,代码过于复杂啦等等都可能导致忘记加上一句delete XXX语句。// 未释放内存空间.cpp : Defines the entry point for the cons原创 2009-02-02 22:12:00 · 3747 阅读 · 1 评论 -
应用程序调试技术视频观看指南
这是第一部分,Windows平台下的应用程序调试技术讲座视频, 视频购买地址:http://product.china-pub.com/3502590 对于研发公司IT支持人员,项目或开发经理,设置事后可跟踪的BUG跟踪以及分析服务系统,建议选择观看:1、应用程序调试技术第1讲 准备调试环境2、应用程序调试技术第2讲 管理符号文件与源代码3、应用程序调原创 2012-03-01 15:35:50 · 5280 阅读 · 0 评论