C/C++
文章平均质量分 60
梦想成了相扑
这个作者很懒,什么都没留下…
展开
-
c/c++访问mysql(gcc)
近一段时间来在看linux下的C编程。根据我的经验,但凡学习一种新的东西,一定要找到一个引爆点。而我一直对网络、数据库相关的各项技术很关心。故就从这两个方面着手看资料。从昨天下午开始,我在看C访问mysql。我找到了一篇很好的资料:http://www.hk8.org/old_web/linux/sql/ch13_01.htm 这个页面中带有一个示例,很有启发性。不过这个例子有一个小问题:调用 m原创 2004-07-09 17:00:00 · 2190 阅读 · 1 评论 -
Visual Studio的一个警告C6262
我目前使用的Visual Studio版本是2008。在这个版本下,正常编译无论如何是不会出C6262的,前几天做了一次"Code Analyzer"。检查出许多的警告,其中就有这个。先贴上MSDN的解释吧——http://msdn.microsoft.com/zh-cn/library/7yhee2f0(v=vs.90).aspx警告 C6262:函数使用了堆栈中的 个原创 2012-09-18 13:03:42 · 48007 阅读 · 4 评论 -
strncpy与strncat的第三个参数,以及警告C6059
①char *strncpy( char *strDest, const char *strSource, size_t count );The strncpy function copies the initial count characters of strSource to strDest and returns strDest. If count is les原创 2012-09-18 14:29:15 · 5922 阅读 · 0 评论 -
CString.Format调用失败另一例(buffer too small vsprintf.c Line:244)
之前遇到如下一个问题——程序运行出错:f:\dd\vctools\crt_bld\self_x86\crt\src\vsprintf.c Line:244”Expression:("Buffer too small", 0).最初以为是自己程序中sprintf使用不当造成的,就是就Grep出所有的sprintf,一个一个查,还是没有查出问题所在。过了许久,已经忘原创 2012-09-19 22:24:19 · 6495 阅读 · 0 评论 -
未指定路径时,CreateProcess与ShellExecute(Ex) 查找路径之不同
未指定路径时,CreateProcess与ShellExecute(Ex) 查找路径之不同 几天前碰上的一个比较细节的东西。调用CreateProcess时不指定全路径时(如:devenv.exe)就不成功(返回0),而同样是不带路径,开始-》运行(与ShellExecute 相当?我想)则完全OK,可以正常开户vs的开发环境。最后原因是——没有把devenv.exe所在的路径加入原创 2012-10-30 09:59:27 · 2953 阅读 · 0 评论 -
使用sprintf 的常见问题
最初的出处已经无可查,下面这个链接也是转来的。呵呵~~http://blog.csdn.net/lychee007/article/details/4217348一个程序debug无错,而release有错。最终定位于某sprintf函数缓冲区溢出,在网上找了一些相关内容。(缓冲区是否溢出的一个重要参考指标是sprintf的返回值,返回此次print的字符数,不包含自动转载 2012-11-06 19:27:00 · 2358 阅读 · 0 评论 -
LINK : fatal error LNK1104: 无法打开文件“mfc71.lib”的原因一例
LINK : fatal error LNK1104: 无法打开文件“mfc71.lib”的原因一例[环境] 日文Windows XP OS 中文Visual Studio 2003 C++代码文件Encoding gb2312[对策] 安装Microsoft Applocale,转换VS成中文内码,重新编译即OK。 C:\WINDOWS\Ap原创 2012-11-08 10:59:34 · 7883 阅读 · 0 评论 -
让Visual Studio的代码分析工具提高你的代码质量
静态代码分析工具,第三方的有很多。其实visual studio有的版本里面也有的哦,通过Q—A的引子希望本文可以起到抛砖引玉的作用。Q:为什么我的Visual Studio中没有代码分析功能([分析]菜单中[仅对...运行代码分析])。A:你的vs版本是下面其中之一吗? Microsoft Visual Studio 2005 Team Edition for Softw原创 2012-11-07 19:07:56 · 15746 阅读 · 0 评论 -
wctomb宽字符到多字节字符节的转换
来源:http://blog.sina.com.cn/s/blog_49366773010004v3.html 博主(opengl3d )在使用wctomb将uncide转换为jis码总是失败,后来在IBM的网站上查到一篇介绍文章才知道必须进行一定的本地化设置之后该函数才可以使用.代码如下:#include #include /* for MB_LEN转载 2012-11-18 14:23:43 · 1297 阅读 · 0 评论 -
LINK : fatal error LNK1104: 无法打开文件“mfc71.lib”的原因又一例
LINK : fatal error LNK1104: 无法打开文件“mfc71.lib”的原因一例http://blog.csdn.net/mxclxp/article/details/8161200参考:http://stackoverflow.com/questions/7851325/why-is-my-lib-forcing-the-inclusion-of-mf原创 2012-11-18 14:03:46 · 9619 阅读 · 3 评论 -
vs2008 编译选项showIncludes 应用一例
开门见山,直接上错误信息——1>d:\test\s_host.h(20) : error C2143: 语法错误 : 缺少“;”(在“.”的前面)1>d:\test\s_host.h(20) : error C2059: 语法错误 : “.”1>d:\test\s_host.h(20) : error C2059: 语法错误 : “public”1>d:\test\s_host.h原创 2012-11-18 15:18:18 · 4962 阅读 · 0 评论 -
VS2008编写的程序使用更低版本VS打开
电脑上装的是VS .net 2003,有时下载运行一些在VS.net 2008里编写的程序会提示出错:“所选文件是Visual Studio解决方案文件,但是由更高版本的Visual Studio创建的,无法打开。”这时只需要改写两个文件的两句话即可解决这个问题。 在.net 2003环境下打开工程的.sln文件,将第转载 2013-10-16 13:33:00 · 3365 阅读 · 1 评论 -
CStdioFile::WriteString()使用时的注意事项
最近看一段程序生成的文本文件,发现总是会隔行显示。查看代码,没有发现异样,每行结束时都会赋予“\r\n”(其实这里就是问题所在,后述)。之后二进制方式打开该文本文件,发现换行处为0x0D0x0D0x0A(对应转义符"\r\r\n")即莫名多出一个0x0D('\r')来。查了MSDN,说“This method writes newline characters in lpsz to the原创 2013-11-20 21:37:23 · 19299 阅读 · 0 评论 -
BOOL与bool不同
一直以来,想当然地以为,就像INT在VC中被typedef成int, CHAR被typedef成char一样,BOOL也是被定义成bool. 直到有一天Debug时发现BOOL型变量值竟然为2!原来Windef.h中,如下重定义:Line153: typedef int BOOL;BOOL与int完全同义!这令我不安起来,如果有一个BOOL型原创 2012-08-15 15:07:52 · 989 阅读 · 0 评论 -
使用Dll的EXE在关闭时出错一例
本来,RELEASE版本的Dll搭配Release版本的Exe,Debug版本的Dll搭配Debug版本的Exe是最正常的情形。不过我测试的结果却正好相反,最正常的情形下Exe关闭时会出错,其它的情形则可以正常关闭EXE。★UseOfMFC:共享★【DLL】【EXE】【EXE終了OK?】RELEASE版RELEASE版() N原创 2012-04-30 20:59:19 · 1790 阅读 · 0 评论 -
Command shell VS GUI interface
注:原文来自"The pragmatic programmer - From journeyman to master" p78;中文部分是我的工作。 For programmers raised on GUI interfaces and intergrated development environments(IDEs), this might seem an extreme position原创 2004-08-02 22:02:00 · 1171 阅读 · 0 评论 -
STL初探
STL初探 以前总是听说STL(Standard Template Library,即标准模板库)的大名,也知道它是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库(C++ Standard Library)中,是ANSI/ISO C++标准中最新的也是极具革命性的一部分。不过一直没有一试,今天看C++书时有个例子用到了std:string,字符串类应该说是每一种语言中最原创 2004-08-25 22:30:00 · 1601 阅读 · 0 评论 -
多读书真好
由于快要找工作,所以读书变得多起来。而且在这个过程中,我体会到了一句话--读书真好。读的多是以前有接触而没有理解好的东西,如C++、数据结构。题外话:有一次从北京坐火车回长春,在车上遇见一个自称是在北京做IT的深度从业人员;他说,“IT就是挨人踢”;而且给了我建议,编程就得C++,注意,就是C++!先从C++开始说起,真的是每读一遍都会有新的收获。在大二时学C++时,真可谓是稀里糊原创 2004-09-13 23:05:00 · 1448 阅读 · 0 评论 -
老生常谈:一个没有\0的字符数组使用时要注意了
十几年前刚开始学习C的时候就被这样教过,不过时至今日真正碰上还真的懵了一下。写下来作个纪念。Line:0001 char strTmp[4] = {'A','B','C','D'};Line:0002 cout 的一个输出例:【ABCDフフフフフフフフ100】因为没有结束字符,所以期待值后面输出一些垃圾数据倒也是可以理解的。 【解决办法】1. 可能的话当然是原创 2012-02-15 22:45:34 · 4435 阅读 · 0 评论 -
GetPrivateProfileString使用时的限制事项
1.可指定数据取得缓冲区的最大长度nSize为0xFFFF, 即可最大取得的数据长度为nSize-1(65534)。另外,使用WritePrivateProfileString写入则没有此限制。2.读取INI数据时,遇到换行字符(0x0D, 0x0A)与NULL(0x00)即刻停止,忽略之后的字符。3.读取INI时,会先从头找Section,找到后即在此Section中查找Key,要是在这原创 2011-12-18 17:35:51 · 7488 阅读 · 1 评论 -
vs2008中switch使用一例(带测试题)
实际工作上遇到的一段代码,不敢独享。直接上代码—— //以下为switch测试 int i = 1; switch (i) { case 1: { TRACE("1\n"); break; case 2: TRACE("2\n"); break; default: TRACE("Other\n"); break; } }【测试】1.原创 2012-03-25 22:39:08 · 1384 阅读 · 0 评论 -
CString.Format使用一例
本人不才,最近遇到一名使用CString.Format的代码。编译通得过,运行却直接失败。 CString str; str.Format(1);最初还怀疑编译器,为什么不直接报编码错。查询Format接口说明才知上面用法完全符合语法。void __cdecl Format( UINT nFormatID, [, argument]...);vo原创 2012-03-25 22:52:02 · 1740 阅读 · 0 评论 -
旧项目移植至VS2008的编译错误C1189
【错误】fatal error C1189: #error : _WIN32_WINNT settings conflicts with _WIN32_IE settingC:\Program Files\Microsoft SDKs\Windows\v6.0A\include\sdkddkver.h217【原因】stdafx.h中定义了不正确的Windows版本号, 修原创 2012-04-01 16:56:07 · 1208 阅读 · 0 评论 -
【初级MFC】大小可变的对话框
书到用时方恨少!一直没有用VC做过什么开发,眼下遇上任何一件小事都得从头来过。下面就是一个例子,记下来留作参考。【要求】1. 窗体大小可调的特殊要求:不允许比原始窗体更小,而且宽度不允许拉伸,即只允许高度拉伸;2. 窗体中有一个文本框还有两个按钮,高度变化后所属控件要进行相应的位置调整。【实现手法】1. 窗体设计。新建对话框的Border默认为Dialog原创 2012-03-17 23:55:30 · 7121 阅读 · 2 评论 -
MSDN也有写错的东西吗?答案当然是肯定的
关于GetPrivateProfileInt函数,发现实机运作与MSDN中记述不同的问题,找了一下,果然有CSDN论坛中早有人发现。http://topic.csdn.net/t/20020621/00/819697.html下面是一种广为流传的说法——如果 Key 值没有找到的话,返回值是 nDefault 指定的缺省值,如果 Key 中的值是负数,则返回原创 2012-04-30 15:21:54 · 1008 阅读 · 0 评论 -
new与delete必须成对使用吗?
对于本文标题的问题,相信许多人会跟两个星期前的我一样,会说YES。请看下面我的经历——两周前,程序关闭时莫名出错。找了许久发现是ExitInstance时delete一个指针出错,它指向CFrameWnd的子类,而且此时这个指针值为0xdddddddd,这个注定不寻常的地址含义是:Deleted。为什么它已经被删除了?答案在MSDN中——Do not u原创 2012-04-30 15:53:13 · 3805 阅读 · 2 评论 -
令人蛋疼的错误提示 0xcdcdcdcd ,0xdddddddd ,0xfeeefeee ,0xcccccccc ,0xabababab
原文地址:http://www.cnblogs.com/pcchinadreamfly/archive/2012/04/26/2471317.html参考地址:http://blog.csdn.net/wuhuiran/article/details/2639800上面两者谁转载了谁(再或者源头在别处)已经分不清了,都写上吧!在写C++程序的时候,老实0xcdcdcdc转载 2012-04-30 16:01:39 · 10135 阅读 · 2 评论 -
Debug模式下正常而Release模式下出现异常的一例
直接上代码吧。Test.h#pragma once#include class Test{public: Test(void); ~Test(void); static std::vector testIntVector;};Test.cpp#include "StdAfx.h"#include "Test.h"Test testObj;std::vect原创 2012-04-30 20:21:44 · 4397 阅读 · 0 评论 -
使用CTime判断日期有效性(C++)
C++中判断日期的有效性,你还在背那些个月大月小的口诀吗?还有那个闰年的判定规则。其实用不着这些,试试CTime如何。原创 2013-12-01 11:15:44 · 5407 阅读 · 0 评论