页首Html代码

返回顶部

随笔分类 -  C/C++

unix编程 linux编程 c语言编程 C++ c/c++经常放在一起。
摘要:先列出来参考 资料:看这篇翻译:http://duanple.blog.163.com/blog/static/70971767201171705113636/Leveldb源码分析4 Slice:http://www.kuqin.com/database/20110919/265041.htmlSlice.h源码:http://www.oschina.net/code/explore/leveldb/include/leveldb/slice.h1 相比返回string,返回Slice的开销会小的多(没有拷贝,Slice中没有实际数据,只有指向数据的指针,开销低)。 2 leveldb允许k 阅读全文
posted @ 2012-08-30 15:38 ayanmw 阅读(2709) 评论(1) 推荐(0)
摘要:#include<stdio.h>class CDemoCls{public: int idata;public: CDemoCls(){ idata=0; printf("%s\n",__FUNCTION__); } ~CDemoCls(){ printf("%s\n",__FUNCTION__); }};class CDemoCls2{public: static class CDemoCls cls; static int a;public: CDemoCls2(){ printf("... 阅读全文
posted @ 2012-08-29 15:50 ayanmw 阅读(792) 评论(4) 推荐(0)
摘要:主要是想实现一个函数,判断本进程是否是多线程。根据情况 显示不同的内容。现在还不知道 待补充。。。mark。研究了一下 去看雪论坛 找了下资料 有一个示例http://bbs.pediy.com/showthread.php?t=98078然后 我琢磨了半天 终于写了一个简单的示例http://bbs.pediy.com/showthread.php?p=1098221#post1098221http://baike.baidu.com/view/589425.htm这里的也可以。#include <TlHelp32.h>void TestProcessGetThreadNumbe 阅读全文
posted @ 2012-08-23 00:14 ayanmw 阅读(5663) 评论(0) 推荐(0)
摘要:由于最近写的代码 发现有点异常,值怎么是错误的呢?明明修改了的。经过调试,发现原来 是构造函数里面的问题。搜索:c++ 一个构造函数 调用 另一个 构造函数发现,原来这就是一个普遍的问题,编译器也木有给警告,其实语法完全合理,如果是java的话,应该没问题。那么C++ 如何 从一个构造函数调用另一个构造函数呢?应该使用下面的方法。new(this)构造函数(不同的参数);参考自:http://www.cnblogs.com/chio/archive/2007/10/20/931043.html我发现问题,还 在构造函数里 return 另一个构造函数,是错误的,因为构造函数没有返回值。但是 你 阅读全文
posted @ 2012-08-20 16:55 ayanmw 阅读(14192) 评论(0) 推荐(0)
摘要:C++ 有 super() 方法没?显然没有。为什么?因为C++ 支持 多重继承,所以super()无法获得 究竟 是那一个父类 的同名方法。那么 该 如何 做呢?只能 用 父类名::方法名 这样来调用了。 阅读全文
posted @ 2012-08-17 12:26 ayanmw 阅读(11574) 评论(0) 推荐(0)
摘要:不用看了,2年前,自己功夫不够,没有想清楚,也觉得奇怪呢,忘记了 拷贝构造函数 这一说,结果导致本文 没有意义了。其实我根本没有使用过这个想法的,后来的工作依然是 一个 new 一个delete。原来以为 C++ 会自动进行类型转换,我错了。再次声明,以下是错误的,现在经过修正了。红色为修正后。--... 阅读全文
posted @ 2012-08-16 17:05 ayanmw 阅读(3299) 评论(4) 推荐(0)
摘要:ArcGIS Engine 10 for crossplatform C++ 程序 使用了多线程,在一个线程中使用 AO 的东西 都没问题。但是 如果在一个线程使用了AO 的license 初始化,在另外一个线程(在 license代码之后开启的线程)直接使用 AO的东西,这样,直接报错,com错误。于是我搜索了下:arcgis Engine C++ 多线程 ,虽然 不报什么希望,因为 ArcEngine 的资料 少之又少。结果看到了下面的文章,两个文章内容一样,前面是转载,但是我先看到的。http://blog.sina.com.cn/s/blog_5f08173901010brv.html 阅读全文
posted @ 2012-08-14 17:00 ayanmw 阅读(2075) 评论(0) 推荐(0)
摘要:首先说下 .max_size() 的值 ,经过测试,发现 应该 是 这样的,看代码和注释就行。/****.max_size 取决于 <key Value> 所占字节比较大的一个。然后用4个字节的数字(unsigned_int_max=40亿左右) 除以2除以 所占字节就是这个值了。****/int map_max_size (){ int i; map<int,int> mymap; cout<<"mymap.max_size()=" << mymap.max_size() <<endl; if (mymap.ma 阅读全文
posted @ 2012-08-13 18:43 ayanmw 阅读(2203) 评论(0) 推荐(0)
摘要:我以为pthread_win32 完全兼容posix 的pthread呢,结果发现,至少有一个地方不同,pthread_t的类型。posix下pthread_t的类型是:typedef unsigned long int pthread_t;//come from /usr/include/bits/pthread.h//用途:pthread_t用于声明线程ID。//sizeof (pthread_t) =4;而pthread_win32 是:/* * Generic handle type - intended to extend uniqueness beyond * that avail 阅读全文
posted @ 2012-08-07 14:31 ayanmw 阅读(5041) 评论(1) 推荐(0)
摘要:只有还没做出来的,没有想不到的。从linux移植到windows的C++程序,肯定要改造下 socket和线程库。某日,突然想到 windows 可以使用pthread库么?搜索,果然有线程的解决方案。1.下载:http://sourceware.org/pthreads-win32/#download直接下载最新的就行,目前是:prebuilt-dll-2-9-1-release.zip 因为是windows平台的,所以下载 .zip 或。exe就行,.exe 就是自解压而已,别无其他。最新版本 没有.exe的下载版本了,其内容和zip的一样。但是 zip和 tar.gz tar.bz2的 阅读全文
posted @ 2012-08-06 15:39 ayanmw 阅读(21788) 评论(0) 推荐(0)
摘要:经常看到别人的头文件 有这样的代码#ifdef __cplusplusextern "C" {#endif// C 样式 的函数#ifdef __cplusplus}#endif为什么要这样呢?因为 C 语言不支持重载函数 也就是同名函数,参数却不一样,C++支持,其编译器对函数名的处理方法不一样,导致 虽然都是C 样式的函数,不同编译器编译出来的不一样。如果 是 C语言编译的中间文件,要C++ 来调用,那么就需要这个 了,C++ 有了 extern "C" 就会按照 C 语言的方法进行函数命名。这样编译出来的中间文件 就是C 样式的函数名,C C++ 阅读全文
posted @ 2012-08-02 17:05 ayanmw 阅读(2252) 评论(0) 推荐(0)
摘要:请问在windows上使用什么API来检查文件是否存在?http://topic.csdn.net/u/20080929/00/48833cf7-125f-4075-881f-614a51fc3e6d.html搜索这个问题的时候,看到的。linux下直接open (filename,O_RDONLY) 返回值判断,windows下 没有这个函数?奇怪。貌似有 _open()函数,可以去msdn查去。查找到windows用 下面的函数就可以。filename是 char * 类型。 if( PathFileExists(filename) ){ return true; } retur... 阅读全文
posted @ 2012-07-26 11:28 ayanmw 阅读(3610) 评论(0) 推荐(0)
摘要:boost可以从http://www.boost.org/users/download/ 下载,其实跳转到 sf.net进行下载了。没有中文版本的帮助文档就不说了,对于国人来说挺糟糕的。有个项目是翻译的,不过也没什么进展:http://code.google.com/p/boost-doc-zh/。chm格式的帮助文档,是我的最爱,太方便了。pdf的 html方式的 都没有chm的好,chm本质也是 对 html的打包,但是多了 查找 索引 收藏 等功能,目录树也很好。真想做一个 类似 chm的开源web项目。boost从他的现在 可以看到,非常糟糕的设计,boost_1_50_0.7z也有4 阅读全文
posted @ 2012-07-24 14:08 ayanmw 阅读(6369) 评论(2) 推荐(0)
摘要:这类的工具有 比如 :LeakDiag leakfinder "Visual Leak Detector" vld可以从http://vld.codeplex.com/releases/view/82311现在最新版本,包括src源代码。安装好以后,他会提示 要求添加 dll 到环境变量中去。使用 vld 的方法为:在自己的代码中 添加 vld 的头文件,以及 lib 声明,其会自动去环境变量path中搜索 vld_x86.dll 或vld_x64.dll ,然后 调用其中的方法的。头文件有俩:vld_def.h 和 vld.h,只需要包含后者(其会包含前者的)贴下他们的源 阅读全文
posted @ 2012-07-21 00:52 ayanmw 阅读(19265) 评论(2) 推荐(0)
摘要:头文件 防止重复包含================根据#define 和条件编译 #ifdef、#ifndef #else #endif 最经常的使用是 头文件 防止重复包含。但是 使用#pragmaonce更好,现在 gcc cl.exe 都支持,它不但代码更少,而且不用为宏起名字,更好。#pragma 说明编译器信息//用法复杂,参考http://baike.baidu.com/view/1451188.htm#warning 显示编译警告信息#error 显示编译错误信息可以在这些条件编译中 给出某条件下的 提醒。比如 要求定义的宏没有定义,就#error,停止编译。条件编译 中的多个 阅读全文
posted @ 2012-07-20 13:53 ayanmw 阅读(2745) 评论(0) 推荐(0)
摘要:得到的答案 都不好。为什么,因为他们都不知道原理。其实原理很简单,编译器 参数或Makefile添加了宏定义,你才可以这样去判断。比如编译器设置了宏 is_windows,你才能去用。不设置没法用。但是,我敢肯定各种编译器 内置一些宏,比如 MS VC的cl.exe ,LINUX的GNU gcc,在各个平台都会有不同的内置宏的。所以 如果我搜索 "各个编译器 内置宏 操作系统" 少量的答案中 有一个 :C++:编写跨平台程序的关键,C/C++中的内置宏定义分两部分:操作系统判定:Windows: WIN32Linux: linuxSolaris: __sun编译器判定:VC 阅读全文
posted @ 2012-07-20 11:47 ayanmw 阅读(20122) 评论(0) 推荐(1)
摘要:利用 vs2010 编译运行(debug运行方式)arcgis engine for C++ 10.0 的sample文件 出现这样的错误。LicenseUtilities::InitializeApp -- Unable to initialize ArcObjects (no appropriate license available).原来以为 是无法初始化lisence,可能是 C++和 java的lisence不一样呢,可是今天恍然大悟。vs2010 编译运行 有一些 看不到的东西。使用 Nmake /f nmakefile.mk 也可以编译出来 exe 可执行文件,而且 没有Lic 阅读全文
posted @ 2012-06-26 15:22 ayanmw 阅读(3550) 评论(0) 推荐(0)
摘要:server.cpp#include <WINSOCK2.H>#include <stdio.h>#pragma comment(lib,"ws2_32.lib")int main(int argc,char **argv){ //创建套接字 WORD myVersionRequest; WSADATA wsaData; myVersionRequest=MAKEWORD(1,1); int err; err=WSAStartup(myVersionRequest,&wsaData); if (!err){ printf("已打开套 阅读全文
posted @ 2012-05-03 16:53 ayanmw 阅读(26329) 评论(0) 推荐(2)
摘要:http://www.cplusplus.com/reference/stl/list/http://www.cppblog.com/Lee7/archive/2008/04/14/47036.html由于要使用一个带有C++ List的类,需要获得放入list<>数据中数据的多少.于是乎,找啊找,没找到.最后还是在Cplusplus.com找到了reference,简直太棒了,许多东西都可以在这个上面找到。上面cpp博客的示例很不错。挖过来了View Code 1 #include <iostream> 2 #include <list> 3 #inclu 阅读全文
posted @ 2012-04-10 15:18 ayanmw 阅读(3988) 评论(0) 推荐(0)
摘要:听说 C++的class比struct高级,但是我经常使用struct的指针,而且用起来很灵活非常强大,就是许多事情做起来要比 类 复杂一些,比如构造函数,析构函数。函数指针赋值 虽然可以模拟成员函数,但是不方便。所以使用C++的类,但是我有一个疑惑,C++的类可以按照struct那个样子使用么?或许我应该说的是 C++的类 与 struct 内存里的结构是一样的么?所以要做个测试。测试的内容有:结构体的大小,类的大小;建立类数组,同时初始化多个类实例(这个用法不知道叫什么,我就说是类数组了) 1 #include <iostream> 2 #include <string. 阅读全文
posted @ 2012-04-06 13:52 ayanmw 阅读(13240) 评论(0) 推荐(0)

页脚Html代码