C/C++ Department
liujinzhao
这个作者很懒,什么都没留下…
展开
-
从文件中读取文本信息
CString str;CFile fp("e://test.txt",CFile::modeReadWrite);LPLONGLONG dw=fp.GetLength();//得到文件的长度fp.Read(str.GetBuffer(dw),dw);MessageBox(str); 还有一事不明,为什么在进行str.Replace("old","new")时没有效果,而必须要进行如下操作原创 2006-09-25 16:21:00 · 1118 阅读 · 0 评论 -
postgresql c++开发包libpqxx的连接错误
在使用libpqxx进行PostgreSQL开发时,当引用libpqxxd.lib时,有时会出现如下的连接错误:Error 1 error LNK2005: "public: bool __thiscall pqxx::result::empty(void)const " (?empty@result@pqxx@@QBE_NXZ) already defined in libpqxxD.lib(原创 2008-03-11 18:46:00 · 2289 阅读 · 0 评论 -
认清多层复杂函数指针
这是一个简单的法则,但能让你准确理解所有的声明。这个法则运用如下:从最内部的括号开始阅读声明,向右看,然后向左看。当你碰到一个括号时就调转阅读的方向。括号内的所有内容都分析完毕就跳出括号的范围。这样继续,直到整个声明都被分析完毕。 对上述“右左法则”做一个小小的修正:当你第一次开始阅读声明的时候,你必须从变量名开始,而不是从最内部的括号。 下面结合例子来演示一下“右左法则”的使用。 i转载 2008-02-29 14:54:00 · 1023 阅读 · 0 评论 -
vs2005 编译 libpqxx2.6.9
准备: 1. PostgreSQL的源代码。 2.libpqxx包 编译libpqxx库需要用到PostgreSQL数据库的libpq.dll(对应release版)和libpqd.dll(对应debug版),所以首先要编译PostgreSQL的源文件。方法比较简单如下: 运行cmd,cd到PostgreSQL数据库源码原创 2007-11-27 21:37:00 · 1135 阅读 · 0 评论 -
Windows网络编程(第2版)中遇到的一些问题
一.要先安装windows xp/2003 版本以上的platform sdk,加入Visual studio的路径中;二.可能会遇到如下问题......../include/wspiapi.h(45) : error C2265: : reference to a zero-sized array is illegal......../include/wspi原创 2007-06-19 20:37:00 · 1073 阅读 · 0 评论 -
高质量C++编程指南笔记3:命名规则
对于命名规则,不同的操作系统平台有不同的特点。Microsoft力推“匈牙利”表示法,即,用前缀加强变量名的表示。而Unix下则主张用单词加下划线法,根据不同的系统,可以使用相应的风格。 几点共性规则: (1)尽量能望文生义。 (2)min-length&max-information。 (3) 不靠大小写区分变量。原创 2007-04-15 19:58:00 · 621 阅读 · 0 评论 -
高质量C++编程指南笔记2:程序的版式
一.空行规则 (1)类的声明之后,函数的定义之后加入空行。 (2)逻辑相关的一组语句之间不要加入空行。二.代码行 (1)每行只写一条语句,或只做一件事。 (2)if、while等控制语句的关键字独占一行,不论体内有多少代码都要用{}。 (3)建议声明的同时进行初始化。三.代码行内的空格 (1)关键字后要跟空格,if、while等空格后加括号。 (2)函数名原创 2007-04-15 18:56:00 · 577 阅读 · 0 评论 -
高质量C++编程指南笔记1:文件结构
一. 版权和版本的声明版权和版本信息放在声明和实现文件的头部:(1)版权信息。(2)文件名称,标识符,摘要。(3)当前版本号,作者/修改者,完成日期。(4)版本历史信息。 /** Copyright (c) 2001,上海贝尔有限公司网络应用事业部* All rights reserved.* * 文件名称:filename.h* 文件标识:见配置管理计划书* 摘原创 2007-04-15 17:18:00 · 677 阅读 · 0 评论 -
sockaddr&sockaddr_in
struct sockaddr { unsigned short sa_family; /* 地址族, AF_xxx */ char sa_data[14]; /* 14字节的协议地址*/ };上面是通用的socket地址,具体到Internet socket,用下面的结构,二者可以进行类型转换struct sockaddr_in { // 专用于TCP/IP端点地址原创 2006-10-20 16:36:00 · 744 阅读 · 0 评论 -
函数约定
函数调用约定1、__stdcall调用约定相当于16位动态库中经常使用的PASCAL调用约定。在32位的VC++5.0中PASCAL调用约定不再被支持(实际上它已被定义为__stdcall。除了__pascal外,__fortran和__syscall也不被支持),取而代之的是__stdcall调用约定。两者实质上是一致的,即函数的参数自右向左通过栈传递,被调用的函数在返回前清理传送参数的内存栈,原创 2006-10-16 09:32:00 · 681 阅读 · 0 评论 -
动态创建控件
动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的。一、创建动态控件: 为了对照,我们先来看一下静态控件的创建。放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放在对话框中即可,再适当修改控件ID,设置控件属性,一个静态控件就创建好了,当对话框被显示时,其上的控件也会显示。静态控件不原创 2006-10-09 09:13:00 · 859 阅读 · 0 评论 -
工具栏&菜单项
工具栏按钮并不是必须与菜单项相对应。但是如果没有对应的菜单项,建议为按钮定义一个加速键,这样可以在添加加速键处通过工具栏按钮的ID 或宏为工具栏按钮右键添加消息处理程序。 当然也可以手工为工具栏按钮映射消息处理函数。 afx_msg void OnTest()........ ON_COMMAND(ID_TES原创 2006-10-06 11:19:00 · 788 阅读 · 0 评论 -
DPtoLP和LPtoDP && ScreenToClient和ClientToScreen
设备坐标(Device Coordinate)又称为物理坐标(Physical Coordinate),是指输出设备上的坐标。通常将屏幕上的设备坐标称为屏幕坐标。设备坐标用对象距离窗口左上角的水平距离和垂直距离来指定对象的位置,是以像素为单位来表示的,设备坐标的X轴向右为正,Y轴向下为正,坐标原点位于窗口的左上角。 逻辑坐标(Logical Coordinate)是系统原创 2006-10-04 21:17:00 · 2485 阅读 · 0 评论 -
VC中实现鼠标穿透
dwNewLong = GetWindowLong(hwnd, GWL_EXSTYLE);dwNewLong |= WS_EX_TRANSPARENT |WS_EX_LAYERED;SetWindowLong(hwnd, GWL_EXSTYLE, dwNewLong);原创 2006-10-03 19:26:00 · 1757 阅读 · 0 评论 -
VC60 下配置和使用STLPort (摘自孟岩老师作品)
STL是一个标准,各商家根据这个标准开发了各自的STL版本。而在这形形色色的STL版本中,SGI STL无疑是最引人瞩目的一个。这当然是因为这个STL产品系出名门,其设计和编写者名单中,Alexander Stepanov和Matt Austern赫然在内,有两位大师坐镇,其代码水平自然有了最高的保证。SGI STL不但在效率上一直名列前茅,而且完全依照ISO C++之规范设计,使原创 2006-09-29 12:58:00 · 1337 阅读 · 0 评论 -
Debug要勇敢的怀疑自己
几天前想把自己的Visual Studio 2005升级到2008版,这就要求对我原来的工程用到的一些第三方库进行重新编译。在编译完成后,运行我的程序,ImageMagick库出现不支持文件的错误。由于原来也遇见过类似的问题,那时候的解决方法是把支持该文件类型的dll复制到debug文件夹下就可解决了。Google了一下,有人说这是ImageMagick库的一个bug但是这个bug原创 2008-05-02 23:59:00 · 573 阅读 · 0 评论