- 博客(23)
- 资源 (1)
- 收藏
- 关注
原创 linux下代码生成core文件
我们都知道在linux环境下,通过ulimit -c size 命令能方便的打开或关闭coredump功能,从而生成core文件,便于调试。但是对于如何用代码控制生成core文件,可能很多人就不知道了。我们一起来看下,其实也很简单。首先需要了解两个函数: int getrlimit(int resource, struct rlimit *rlim); int s
2015-04-16 19:50:17
1305
原创 Linux下全局符号覆盖问题
在windows上,默认情况下,动态库中的符号都是对外隐藏的,除非你显示的指出要导出哪些符号,否则外界是看不到的。但是linux下情况刚好相反,对静态变量和全局变量,linux下so里面的符号对外可见。这就很容易出现一个问题,就是外界很可能会无意中修改so内部的符号或符号同名但内存结构不同,带来各种问题。有一种方法能将so里面的符号隐藏起来,避免全局符号覆盖。1、首先,编程参数中添加编译选
2013-10-30 10:48:10
2074
原创 Linux环境下程序调试
【core设置】1)使用ulimit -c命令可查看core文件的生成开关。若结果为0,则表示关闭了此功能,不会生成core文件。2)使用ulimit -c filesize命令,可以限制core文件的大小(filesize的单位为kbyte)。若ulimit -c unlimited,则表示core文件的大小不受限制。如果生成的信息超过此大小,将会被裁剪,最终生成一个不完整的core文件
2013-03-20 15:08:26
983
原创 fatal error C1001: 编译器中发生内部错误。
用vs2005在构建版本时时出现如下错误:24>C:\Program Files (x86)\Microsoft Visual Studio 8\VC\include\xmemory(165) : fatal error C1001: 编译器中发生内部错误。24>(编译器文件“msc1.cpp”,第 1392 行)24> 要解决此问题,请尝试简化或更改上面所列位置附近的程序。
2013-01-24 08:23:57
6272
原创 使用ACE进行网络连接失败
本人用ACE进行程序开发,今天遇到了意见比较怪异的事情:用我自己开发的工具集成我的网络模块A,连接服务器S,是可以的,别人集成我的模块A,连接S,报错误码是2和10038。连接模块代码如下:C/C++ code?12345678910111213
2013-01-06 16:53:44
2352
原创 第四届云计算大会简录
1、本次大会的主题是“示范引领,创新实践”。这样一个主题揭示了当前的云计算已经由概念走向实践,云计算被越来越多的企业所接受并用到了实践当中去。2、hadoop在本次大会上被广泛应用,基本上成为云计算平台的一个不可或缺的组成部分及基础架构组件。各大互联网公司都在基于此构建他们自己的云平台,并根据其需要对其做必要的修改及改进。与他们相比,我们有不小的差距。(示例)3、支持云
2012-08-28 10:58:24
2372
原创 STL::for_each用法
std::for_each用法示例:#include #include #include struct persoan{int age;int degree;};// for_each用于对元素操作的仿函数,参数必须为元素的类型,返回值没有要求void add(persoan& p1){ p1.age += 10;}
2012-03-21 19:10:46
1907
原创 linux下 编译 ace
先从官网下载ACE。编译命令:make -f GNUMakefile debug=0 static_libs=0 buildbits=64说明: debug=0表示编译release版本,等于1表示编译debug版本, static_libs
2011-08-17 18:11:33
1243
原创 windows 写读注册表 示例
///////////////////////////////////////////////////////////////////////////////////////// 把一个可执行程序的路径写入注册表,并读取出来。//////////////////////
2011-08-17 17:34:48
889
原创 关于网络程序编写的两个问题
最近在开发程序的时候,发现两个问题,也许有人知道,也许有人还不知道:1) 关于Linux下select处理套接字描述符的问题。select处理套接字描述符,并不是最多只能处理1024个,而是处理套接字描述符本身的值不能超过1024,也就是说如果套接字创建过多,产生了socket值
2011-07-14 16:44:11
710
原创 导致Link2019 错误的 另一种情况
<br />错误:<br />error LNK2019: unresolved external symbol "public: __cdecl xxx referenced in function "public: virtual int __cdecl xxx<br /> <br />导致这个错误的原因除了常见的没有导入链接的库文件或没添加依赖项外,也有可能是由于自己的64位程序试图引用32位的lib或dll导致的。
2011-05-26 12:30:00
1988
原创 ACE 门卫锁使用方法简述
<br />ACE有一个非常好用的宏可以用来同步,就是ACE_GUARD_RETURN,只要用该宏,只需一句话就可以实现同步。<br />使用方法:<br />先声明一个锁:<br />ACE_Thread_Mutex lock_;<br /> <br />然后在需要加锁的地方加上下面以句就可以了:<br />ACE_GUARD_RETURN(ACE_hread_Mutex, guard, lock_, -1);<br /> <br />这句话的意思是:创建一个临时变量guard,如果失败返回-1。如
2011-05-26 11:51:00
3206
原创 VS调试技巧之----Attach to Process
<br />attach to process: 用于和进程绑定,方便调试。<br />你有没有这样的经历:按F5开始调试时,程序需要好长时间才能启动,比如可能需要加载比较大的文件或资源,这时候你可能需要等很长时间,而下次调试时又不得不等很长时间以待程序启动。其实这浪费了很多的时间。那有没有比较好的解决方法呢,有,就是VS提供的Attach to Proces 的功能。你只要把待调试的程序启动,然后把程序和源码attach一下就可以调试了,程序会在你在源码中设置的断点处停下来,当你调试完成后,只要不关闭你的
2011-03-26 17:40:00
11372
3
转载 使用STL时的一个链接错误(error LNK2005:std::_Lockit::_Lockit(int)重定义)
<br />今天编译一个使用STL的工程时遇到以下的链接错误:<br />PerformanceTest error LNK2005: "public: __thiscall std::_Lockit::_Lockit(int)" (??0_Lockit@std@@QAE@H@Z) 已经在 PetCore.lib(PetDib.obj) 中定义<br />PerformanceTest error LNK2005: "public: __thiscall std::_Lockit::~_Lockit(voi
2011-03-08 12:18:00
2357
原创 php调用DLL(COM)注意事项
<br />PHP调用DLL(COM)注意事项:<br />1、函数的参数中,最后一个参数函数是返回值,须是retval类型的。<br />2、向接口传字符串类型的参数时,不要用BSTR*类型的,而用BSTR,因为BSTR本身已经是指针了。<br />3、PHP中的数字0并不对应C/C++中的0或NULL,而是另有其值。<br />4、PHP中的空字符串""并不对应C/C++中的NULL,最好用计算其长度是否为0来判断是否为空串。<br />5、向外输出的接口如果能放在一个类中,最好都放在一个类中。曾经在输
2011-01-25 11:27:00
2408
原创 服务和进程的区别
<br />区别:<br />1、服务和普通进程没有本质的区别.但服务一般在后台运行,一般不需要与用户进行交互。<br />2、服务不需要用户登陆即可运行.但普通进程不行。<br />3、 服务在后台运行的目的就是不需要太多的人为干预.他们会在特定事件发生的时候去做预定的事。
2011-01-11 19:08:00
7146
转载 C++类库介绍
<br />转载的,忘了地址。<br />C++类库介绍 <br />再次体现了C++保持核心语言的效率同时大力发展应用库的发展趋势!!在C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。由于库的数量非常庞大,而且限于笔者水平,其中很多并不了解。所以文中所提的一些库都是比较著名的大型库。
2011-01-11 19:06:00
615
原创 C++类库介绍
<br />转载的,忘了地址。<br />C++类库介绍 <br />再次体现了C++保持核心语言的效率同时大力发展应用库的发展趋势!!在C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。由于库的数量非常庞大,而且限于笔者水平,其中很多并不了解。所以文中所提的一些库都是比较著名的大型库。
2011-01-11 19:05:00
486
原创 C++类库介绍
<br />转载的,忘了地址。<br />C++类库介绍 <br />再次体现了C++保持核心语言的效率同时大力发展应用库的发展趋势!!在C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。由于库的数量非常庞大,而且限于笔者水平,其中很多并不了解。所以文中所提的一些库都是比较著名的大型库。
2011-01-11 19:05:00
619
原创 不用rename的另一中更改文件名称的方法
<br />函数:<br />BOOL CopyFile(LPCTSTR lpExistingFileName,LPCTSTR lpNewFileName,BOOL bFailIfExists ); <br />包含文件:<br />#include<windows.h><br /> <br />第一个参数是已经存在的文件名字,可以是绝对路径也可以是相对路径,第二个参数是新的文件名,第三个参数指示<br />新文件是否存在,true表示已经存在,false表示不存在。<br />函数调用后将产生另一个文件,
2011-01-11 19:03:00
930
原创 LINK2019错误及解决方法
错误: error LNK2019: unresolved external symbol解决方法:1、看看有没有链接用到的Lib库。 设置方法:右键->property->Configuration Properties->Linker->Additional Dependencies 在这里添加引用的Lib库,注意路径!2、如果Lib库已经添加过了但还是有次错误,可查看当然工程的编译模式和引用的Lib库是否同一模式, 简单来说就是工程要是Debug模式就引用Lib的Debug版,反之引用
2010-12-26 19:19:00
10902
转载 乱码程序,乱的很有规律
This page combines two things I like: "Hello, World!" programs and obfuscated C programs. The following programs should all compile with GCC and the Borland command line compiler for Windows (bcc32).hello1.c#define _________ } #define ________ putchar
2010-12-07 17:44:00
975
原创 简单编译boost库
前几天在项目中用到了boost库,所以就试着编译了一下。现在记录下来编译过程,以备以后观看。我用的vs2005,平台包括win32和x64两种。win32平台:1、在/boost/boost_1_40_0/tools/jam/src目录下找到build.bat文件,双击运行,将在/boost/boost-jam-3.1.18-1-ntx86 目录下生成bjam.exe。2、编写一个批处理文件,名称随便起,比如叫boost.bat, 在该文件中添加如下内容: bjam --without-pyt
2010-11-26 17:44:00
704
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人