- 博客(171)
- 资源 (2)
- 收藏
- 关注
main中调用dll中的函数,F10单步到main的右大口号时出现user breakpoint called...
在dll中输出了一个包含string类子对象的类,在DEBUG主工程中只要调用了string参数的成员函数,则main退出时都有那个错误;但是RRLEASE工程又是好的。 解决办法:主工程和DLL工程的都设置为同样的DEBUG Multithreaded DLL或Mutithreaded DLL,project-->settings-->c/c++标签页中的category下拉筐中选c...
2010-03-09 18:42:21
246
原创 VC中链接动态链接库的方法
方法一:windows提供了一套函数,用于加载动态链接库中的符号(函数和变量),调用这些函数去加载: 1. HINSTANCE LoadLibrary( LPCTSTR lpLibFileName); 2. FARPROC GetProcAddress( HMODULE hModule, LPCWSTR lpProcName); 3. BOOL FreeLibra...
2010-03-06 17:17:27
250
原创 50个C/C++源代码网站
C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建议,以进一步加强这方面的清单。 1、http://snippets.dzone.com/tag/c/ --数以千计的有用的C语言源代码片段 2、http://ww...
2010-01-30 13:01:34
272
原创 《Effective C++》条款34: 将文件间的编译依赖性降至最低
假设某一天你打开自己的C++程序代码,然后对某个类的实现做了小小的改动。提醒你,改动的不是接口,而是类的实现,也就是说,只是细节部分。然后你准备重新生成程序,心想,编译和链接应该只会花几秒种。毕竟,只是改动了一个类嘛!于是你点击了一下"Rebuild",或输入make(或其它类似命令)。然而,等待你的是惊愕,接着是痛苦。因为你发现,整个世界都在被重新编译、重新链接! 当这一切发生时,你难道...
2010-01-29 21:04:50
195
原创 HTTP协议解析
掌握HTTP虽然不是必须的,但是如果你知道它的工作原理,那么在学习JSP开发中的某些知识就可以易如反掌了。 一,HTTP协议详解之URL篇 http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。HTTP URL (URL是一种...
2010-01-27 20:39:23
196
原创 QHttp编程的体会
遇到两个博客的发送都是使用cookie来标识用户的:my.opera.com以及myspace. 请求头请求头类:QHttpRequestHeader 设置请求方式(get/post)QHttpRequestHeader::setRequest ("POST", "请求地址"); //postQHttpRequestHeader::setRequest ("GE...
2010-01-26 18:19:30
208
原创 QHttp
QHttp是Qt所提供有关网络的高阶API,可以协助我们进行HTTP协议的进行,QHttp发出请求时是非同步的,请求的过程中会发出相关的Signal,我们可以用Slot来接收这些Signal,并进行相关的处理。 以下先示范一个最基本的QHttp使用,程序将设计一个HttpGet类: HttpGet.h#ifndef HTTPGET_H#define HTTPGET_H...
2010-01-26 17:06:30
503
原创 MYSQL远程访问设置
1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"mysql -u root -pmysql>use mysql;mysql>update user set host = '%'
2010-01-24 01:35:16
95
原创 VC屏蔽Enter和ESC退出程序
重载PreTranslateMessage函数屏蔽回车和ESC的消息:BOOL C***Dlg::PreTranslateMessage(MSG* pMsg) { if(WM_KEYDOWN == pMsg->message ) { UINT nKey = (int) pMsg->wParam; if( VK_RET...
2010-01-15 21:51:57
131
原创 TOMCAT指定JDK
在windows环境下以批处理文件方式启动tomcat,只要运行<CATALINA_HOME>/bin/startup.bat这个文件,就可以启动Tomcat。在启动时,startup.bat会调用catalina.bat文件,而catalina.bat会调用setclasspath.bat文件来获取JAVA_HOME和JRE_HOME这两个环境变量的值,因此若要在tomcat启动时指...
2010-01-14 17:13:56
108
原创 Ajax无缓存定时读取图片
只需要一个JSP页面就行了:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + reques...
2010-01-14 13:57:03
131
原创 《Effective C++》条款22:尽量用"传引用"代替"传值"
c语言中,什么都是通过传值来实现的,c++继承了这一传统并将它作为默认方式。除非明确指定,函数的形参总是通过“实参的拷贝”来初始化的,函数的调用者得到的也是函数返回值的拷贝。正如我在本书的导言中所指出的,“通过值来传递一个对象”的具体含义是由这个对象的类的拷贝构造函数定义的。这使得传值成为一种非常昂贵的操作。例如,看下面这个(只是假想的)类的结构:class person {publi...
2010-01-13 11:15:12
150
原创 《高质量C++/C 编程指南》之 内存耗尽怎么办
如果在申请动态内存时找不到足够大的内存块,malloc和new将返回NULL指针,宣告内存申请失败。通常有三种方式处理“内存耗尽”问题。(1)判断指针是否为NULL,如果是则马上用return语句终止本函数。例如:void Func(void){ A *a = new A; if(a == NULL) { return;...
2010-01-12 14:20:29
191
原创 《高质量C++/C 编程指南》之 常见的内存错误及其对策
发生内存错误是件非常麻烦的事情。编译器不能自动发现这些错误,通常是在程序运行时才能捕捉到。而这些错误大多没有明显的症状,时隐时现,增加了改错的难度。有时用户怒气冲冲地把你找来,程序却没有发生任何问题,你一走,错误又发作了。 常见的内存错误及其对策如下: u 内存分配未成功,却使用了它。编程新手常犯这种错误,因为他们没有意识到内存分配会不成功。常用解决办法是,在...
2010-01-12 14:10:53
133
原创 《高质量C++/C 编程指南》之 有了malloc/free为什么还要new/delete
malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。 对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free是库函数而不是运算符,不在编译器控制权限之内,不能够把执行构造函数和析构函数...
2010-01-12 13:33:17
140
原创 《高质量C++/C 编程指南》之 free和delete把指针怎么啦?
别看free和delete的名字恶狠狠的(尤其是delete),它们只是把指针所指的内存给释放掉,但并没有把指针本身干掉。用调试器跟踪示例7-5,发现指针p被free以后其地址仍然不变(非NULL),只是该地址对应的内存是垃圾,p成了“野指针”。如果此时不把p设置为NULL,会让人误以为p是个合法的指针。 如果程序比较长,我们有时记不住p所指的内存是否已经被释放,在继续使用p之前,通常...
2010-01-12 11:30:51
146
原创 《高质量C++/C 编程指南》之 杜绝"野指针"
“野指针”不是NULL指针,是指向“垃圾”内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if语句对它不起作用。 “野指针”的成因主要有两种: 1 指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指针设置为NULL,要么让它指向合法的内...
2010-01-12 11:27:33
144
原创 《Effective C++》条款14: 确定基类有虚析构函数
有时,一个类想跟踪它有多少个对象存在。一个简单的方法是创建一个静态类成员来统计对象的个数。这个成员被初始化为0,在构造函数里加1,析构函数里减1。(条款m26里说明了如何把这种方法封装起来以便很容易地添加到任何类中,“my article on counting objects”提供了对这个技术的另外一些改进)设想在一个军事应用程序里,有一个表示敌人目标的类:class enemytarg...
2010-01-12 11:18:35
117
原创 Java序列化
1、序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。 2、什么情况下需要序列化 a)当你想把内存中的对象状态保存到一个文件中或者数据库中时候; ...
2010-01-12 09:40:11
90
原创 跟周相关的日期操作
package iprai.rid.test1;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import java.util.List;public class WeeksInYear { ...
2010-01-11 15:43:11
154
原创 简单且线程安全的两个java单例类
==================================一====================================public class Singleton { private static Singleton instance = new Singleton(); private Singleton(){ ...
2010-01-11 15:11:00
110
原创 ActiveMQ5.2发送和接受BlobMessage
JMS消息生产者:import java.io.File;import javax.jms.DeliveryMode;import javax.jms.Destination;import javax.jms.JMSException;import javax.jms.MessageProducer;import javax.jms.Session;import org...
2010-01-11 15:01:27
348
原创 ActiveMQ5.2发送和接受TextMessage
JMS消息生产者:import javax.jms.Connection;import javax.jms.DeliveryMode;import javax.jms.Destination;import javax.jms.JMSException;import javax.jms.MessageProducer;import javax.jms.Session;i...
2010-01-11 14:13:52
994
原创 ActiveMQ学习笔记----ActiveMQ中的安全机制
本文简单介绍ActiveMQ通过JAAS实现的安全机制。JAAS(Java Authentication and Authorization Service)也就是java认证/授权服务。这是两种不同的服务,下面对其做一些区别: 验证(Authentication)就是要验证一个用户的有效性,即用户名、密码是否正确; 授权(Authorization)就是授予用户某种角色,以...
2010-01-11 11:05:09
133
原创 ActiveMQ中的消息持久性
ActiveMQ很好的支持了消息的持久性(Persistence)。消息持久性对于可靠消息传递来说应该是一种比较好的方法,有了消息持久化,即使发送者和接受者不是同时在线或者消息中心在发送者发送消息后宕机了,在消息中心重新启动后仍然可以将消息发送出去,如果把这种持久化和ReliableMessaging结合起来应该是很好的保证了消息的可靠传送。 消息持久性的原理很简单,就是在发送者将...
2010-01-11 10:41:40
106
原创 数组名不完全等于指针
指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多程序设计者就被搞糊涂了。 魔幻数组名 请看程序(本文程序在WIN32平台下编译): #include <iostream.h>int main(int argc, char* argv[]) { char str[10]; char *pStr...
2010-01-10 19:12:36
180
原创 编程实现短信收发的方式
1 网关方式(由移动运营商提供开发接口API) 2 终端方式(通过用短信模块或手机模块实现,当服务器部署在机房中时,信号是个大问题) 3 利用一些网站来实现(比如新浪,比较不稳定)...
2010-01-10 17:32:43
233
原创 C++字符串完全指引之二
引言 因为C语言风格的字符串容易出错且不易管理,黑客们甚至利用可能存在的缓冲区溢出bug把C语言风格的字符串作为攻击目标,所以出现了很多字符串封装类。不幸的是,在某些场合下我们不知道该使用哪个字符串类,也不知道怎样把一个C风格的字符串转换成一个字符串封装类。 这篇文章将介绍所有在Win32 API, MFC, STL, WTL 和 Visual C++ 运行库中出现的字符串类型。我...
2010-01-09 16:16:48
108
原创 C++字符串完全指引之一
引言 毫无疑问,我们都看到过像 TCHAR, std::string, BSTR 等各种各样的字符串类型,还有那些以 _tcs 开头的奇怪的宏。你也许正在盯着显示器发愁。本指引将总结引进各种字符类型的目的,展示一些简单的用法,并告诉您在必要时,如何实现各种字符串类型之间的转换。 在第一部分,我们将介绍3种字符编码类型。了解各种编码模式的工作方式是很重要的事情。即使你已经知道一个字符串...
2010-01-08 22:53:57
117
原创 BMP文件格式
一.位图结构如下: ---- 一、BMP文件结构 ---- 1. BMP文件组成 ---- BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。 ---- 2. BMP文件头 ---- BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。 ---- 其结构定义如下: typedef struct tagBITMAPFILEHEADER{WO...
2010-01-08 22:15:35
95
原创 OpenCV基础数据结构
图像数据结构:1) IPL 图像: IplImage |-- int nChannels; // 色彩通道数(1,2,3,4) |-- int depth; // 象素色深: | // IPL_DEPTH_8U, IPL_DEPTH_8S, | // IP...
2010-01-08 21:56:04
116
原创 OpenCV基本知识
1、OpenCV概述 1) 什么是OpenCV 开源C/C++计算机视觉库. 面向实时应用进行优化. 跨操作系统/硬件/窗口管理器. 通用图像/视频载入、存储和获取. 由中、高层API构成. 为Intel®公司的 Integrated Performance Primitives (IPP) 提供了透明接口. 2) 特性: 图像数据操作 (分配,释放, 复制, ...
2010-01-08 21:31:00
180
原创 calloc(), malloc(), realloc(), free()
void *calloc(size_t nobj, size_t size);分配足够的内存给nobj个大小为size的对象组成的数组, 并返回指向所分配区域的第一个字节的指针;若内存不够,则返回NULL. 该空间的初始化大小为0字节.char *p = (char *) calloc(100, sizeof(char));void *malloc(size_t size);分配足够的...
2010-01-08 21:08:53
159
原创 善用GetLastError函数
在编程过程中,当程序出现错误,却又不知道错误的原因时,可以使用GetLastError函数,它可以帮助你快速找到出错的原因和语句。 可以直接使用GetLastError函数得到错误代码,然后查找MSDN找到代码对应的错误原因,也可使用下面函数直接把错误原因显示出来: void ShowErrMsg(){ TCHAR szBuf[80]; LPVOI...
2010-01-08 21:06:04
182
原创 MFC中的UpdateData()
UpdateData,顾名思义,是用来刷新数据的。UpdateData(TRUE) -- 刷新控件的值到对应的变量UpdateData(FALSE) -- 拷贝变量值到控件显示。例如窗口中用 DDX_Text(pDX, IDC_EDIT1, m_usercode); 将IDC_EDIT1编辑框控件与m_usercode变量做了关联,如果修改m_usercode之后要想对应控件显示更改,...
2010-01-08 21:03:48
298
原创 CInternetSession的简单使用例子
1. CInternetSession的简单使用CInternetSession session;CHttpFile *file = NULL;CString strURL = " http://www.google.com";CString strHtml = "”; //存放网页数据try{ file = (CHttpFile*)ses...
2010-01-08 20:58:49
582
原创 彻底理解C、C++、WIN32与COM中的字符串
C/C++中的字符串问题在网上的讲解一向非常含糊,存在各个层次的库混用、滥用的情况,尤其是宽字符与窄字符等问题很难找到有效的资料,本篇随笔分享一下我长期收集到的一些比较准确的资料以及据此得到的个人理解.C语言中的字符串C语言中提供了两种字符类型char和wchar_t,C语言使用字符数组来表示字符串,同时支持两种直接量写法:"abcd"和 L"abcd" 来表示字符串常量文字量,C语言允许...
2010-01-08 20:37:49
145
原创 Unicode下wstring(wchar_t*)和string(char*)互相转换
#include<string>using namespace std;//将string转换成wstringwstring string2wstring(string str){ wstring result; //获取缓冲区大小,并申请空间,缓冲区大小按字符计算 int len = MultiByteToWideChar(CP_ACP, 0, str...
2010-01-08 14:46:47
1266
1
原创 注册ActiveX控件的几种方法
使用ActiveX控件可快速实现小型的组件重用、代码共享,从而提高编程效率,降低开发成本。但是ActiveX控件对于最终用户并不能直接使用,因为ActiveX控件必须先在Windows中注册。注册ActiveX控件一般来说有六种途径,它们有各自的优点,运用范围也不同。 Regsvr32.exe注册 Regsvr32.exe位于Windows目录的system子目录下。点击Window...
2010-01-07 16:36:13
263
原创 ActiveX控件在IE中不能显示的解决方案
Q: VC6生成MFC ActiveX,使用htm调用, CLASSID="CLSID:12342234-3234-4234-5234-623472348234" CODEBASE="testocx.cab#version=1,0,0,1" 在WinXPSp1上,http://www.smth.org/,ok 在WinXPSp2/2k3SP1/Vista上,http://w...
2010-01-07 16:34:13
724
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人