C/C++
文章平均质量分 85
MEMEMEMENG
这个作者很懒,什么都没留下…
展开
-
java与c/c++之间的数据交互-----jni点滴
最近作一个tiemsten数据库的项目,用到了jni技术。在这个项目中,我们用java来写界面和业务逻辑,用c语言写数据库odbc访问。单纯的odbc其实没有什么难的,但是在java和c之间进行数据传递是比较麻烦的事情。两者之间数据的传递有这样几种情况:java和c之间基本数据类型的交互,java向c传递对象类型,c向java返回对象类型,c调用java类。下面就这样几种情况分类说明。1、ja转载 2013-06-18 16:45:13 · 853 阅读 · 0 评论 -
fopen()惹的祸
读一个文件,刚开始只读“r” 打开,读数据,刚开始的一段数据还好,但只读了一小部分就读不到正确的数据了,后来反复的看自己的代码,比对文件的内容,纠结了一天了都,感觉什么都没写错啊。心里总认为是这个文件写入的时候肯定出问题了,不然怎么会有的数据读出来,有的却没办法读呢。。。 最终的结果气死我了都,原来需要 “rb+”,二进制文件!!!原创 2013-06-25 16:28:11 · 840 阅读 · 0 评论 -
mysql长连接和短连接的问题
什么是长连接?其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态。通常的短连接操作步骤是:连接-》数据传输-》关闭连接;而长连接通常就是:连接-》数据传输-》保持连接-》数据传输-》保持连接-》…………-》关闭连接;这就要求长连接在没有数据通信时,定时发送数据包,以维持连接状态,短连接在没有数据传输时直接关闭就行了什么时候用长连接,短连接?转载 2014-03-06 16:18:07 · 705 阅读 · 0 评论 -
类在其自身的定义体内作为数据类型
只有static成员变量,指针或者引用,才可以在一个类的定义体内,用本类作为数据类型,如:class Bar{public: ......private: static Bar member1; //OK Bar*转载 2014-12-24 14:58:30 · 567 阅读 · 0 评论 -
变长参数的函数
变长参数的函数即参数个数可变、参数类型不定 的函数。设计一个参数个数可变、参数类型不定的函数是可能的,最常见的例子是printf函数、scanf函数和高级语言的Format函数。在C/C++中,为了通知编译器函数的参数个数和类型可变(即是不定的、未知的),就必须以三个点结束该函数的声明。view plaincopy to clipboard转载 2014-12-24 16:13:51 · 474 阅读 · 0 评论 -
CPaintDC CDC
from:http://blog.csdn.net/c__allen/article/details/7704359今天在对话框上绘制图形时遇到了一个问题,直接上代码:下面是对话框重载的OnPaint函数:[cpp] view plaincopyCRect rect; CDC *pDC = GetDC(); CDC memDC; GetClientRe转载 2015-09-08 09:19:00 · 594 阅读 · 0 评论 -
__try,__except,__finally,__leave异常模型机制
from:http://www.cnblogs.com/qintangtao/archive/2013/02/21/2920240.html导读: 从本篇文章开始,将全面阐述__try,__except,__finally,__leave异常模型机制,它也即是Windows系列操作系统平台上提供的SEH模型。主人公阿愚将在这里与大家分享SEH( 结构化异常处理)的学习过程和经验总结。转载 2015-10-16 18:45:37 · 343 阅读 · 0 评论 -
C 判断点是否在多边形内
FROM:http://blog.csdn.net/okvee/article/details/5643407// 功能:判断点是否在多边形内 // 方法:求解通过该点的水平线与多边形各边的交点 // 结论:单边交点为奇数,成立! // 判断点是否在四边形内部 // 参数: // POINT pCur 指定的当前点 //转载 2015-09-23 15:08:54 · 1958 阅读 · 0 评论 -
Sleep(0)
from:http://blog.csdn.net/kesalin/article/details/8062176目的:有时候我们想让线程不被调度一定的时间,也就是说让线程睡眠一段时间。API 接口:在 Win32中可以调用 Sleep,SleepEx 和 SwitchToThread 三个API。VOID WINAPI Sleep(DWORD dw转载 2015-12-14 15:31:03 · 371 阅读 · 0 评论 -
窗口重叠,WS_CLIPCHILDREN和WS_CLIPSIBLINGS
from:http://blog.csdn.net/lixiang987654321/article/details/26092029相信,人多人都对WS_CLIPCHILDREN和WS_CLIPSIBLINGS具体的属性不是很理解,尤其是对WS_CLIPSIBLINGS的理解,通过网络上查资料,看了四五次,每次看懂了但是下次遇到又忘记了,让人很揪心,但是经过几次的实际应用,我终于明白了他们的转载 2015-12-14 16:39:27 · 971 阅读 · 0 评论 -
_stdcall,_cdecl
(1) _stdcall调用 _stdcall是Pascal程序的缺省调用方式,参数采用从右到左的压栈方式,被调函数自身在返回前清空堆栈。 WIN32 Api都采用_stdcall调用方式,这样的宏定义说明了问题: #define WINAPI _stdcall 按C编译方式,_stdcall调用约定在输出函数名前面加下划线,后面加“@”符号和参数的字节数,形如。转载 2016-05-24 14:16:03 · 209 阅读 · 0 评论 -
数组引用:C++ 数组做参数 深入分析
"数组引用"以避免"数组降阶"(本文曾贴于VCKBASE\C++论坛)受[hpho]的一段模板函数的启发,特写此文,如有雷同,实在遗憾。数组降阶是个讨厌的事,这在C语言中是个无法解决的问题,先看一段代码,了解什么是"数组降阶"#include using namespace std;void Test( char array[20] ){ cout转载 2016-05-30 13:47:30 · 499 阅读 · 0 评论 -
变量命名 windows
收藏 为了代码清晰易懂,通常变量名采用一些著名的命名规则,主要有Camel标记法,Pastal标记法和匈牙利标记法。 Camel标记法采用首字母小写,接下来的单词都以大写字母开头的方法,如myName。 Pastal标记法采用首字母大写,接下来的单词都以大写字母开头的方法,如MyName。 匈牙利标记法是在Pastal标记法的基转载 2016-05-18 13:58:40 · 1068 阅读 · 0 评论 -
C语言标准中的逻辑位移和算术位移
在C语言中,涉及位移的运算符有2个,>>表示右移,而汇编指令中,SHL和SHR表示逻辑左移和逻辑右移,SAR和SAL表示算术左移和算术右移。其中,逻辑左移和算术左移都是寄存器二进制位整体向左移动,并在右边补0。而右移则不同,逻辑右移是整体向右移,并在左边补0,而算术左移则是根据原符号位的值补与其相同的值。那么如何在C语言中分别实现逻辑和算术位移呢?根据C标准,如果在转载 2016-07-11 11:17:14 · 1016 阅读 · 0 评论 -
重构理论及实践——用工厂模式重构c++后台代码
1、背景 代码重构和设计模式(其实没什么关联,我硬给拉到了一起),两个似乎都是比较玄的东西。很多时候,抱着gof(写书的四人组)那本经典的《设计模式》啃个两遍下来,便觉代码之道已烂熟于心,coding中自可挥洒自如了;然而,到了实际的项目中,该怎么码还是怎么码——你问我用什么模式?咳咳,pm的需求我都忙不过来了,管他什么模式不模式的啊。至于代码重构么,功能实现出来就行了,你说代码多、转载 2016-06-30 13:51:05 · 605 阅读 · 0 评论 -
C++中STL常用容器的区别
http://www.cpplive.com/html/188.html我们常用到的STL容器有vector、list、deque、map、multimap、set和multiset,它们究竟有何区别,各自的优缺点是什么,为了更好的扬长避短,提高程序性能,在使用之前需要我们了解清楚。verctorvector类似于C语言中的数组,它维护一段连续的内存空间,具有固定的起始转载 2016-08-31 16:02:28 · 418 阅读 · 0 评论 -
指针作为函数参数传递 (转载)
http://blog.csdn.net/lpp1989/article/details/7767109这几天在学习C过程中,在使用指针作为函数参数传递的时候出现了问题,根本不知道从何得解:源代码如下: createNode(BinNode *tree,char *p) { tree = (BinNode *) malloc(sizeof(BinNode)转载 2016-09-05 10:24:36 · 613 阅读 · 0 评论 -
数组中只出现一次的一个数
本文基本参考http://blog.csdn.net/morewindows/article/details/8214003我在这里重复的写一遍,只是为了让自己加深印象。基本的位操作符有与、或、异或、取反、左移、右移这6种,它们的运算规则如下所示:符号 描述 运算规则 by MoreWindo原创 2013-12-18 17:12:17 · 821 阅读 · 0 评论 -
串口超时
Win 32系统把文件的概念进行了扩展。无论是文件、通信设备、命名管道、邮件槽、磁盘、还是控制台,都是用API函数CreateFile来打开或创建的。该函数的声明为:HANDLE CreateFile( LPCTSTR lpFileName, // 文件名 DWORD dwDesiredAccess, // 访问模式 DWORD dwShareMode, //转载 2013-09-13 15:43:41 · 1416 阅读 · 0 评论 -
VC调试基础
一.Debug版本和Release版本的区别Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。只有Debug版本的程序才能设置断点、单步执行、使用TRACE/ASSERT等调试输出语句。Release版本不包含任何调试信息,所以体积小、运行速度快转载 2013-07-17 08:29:34 · 680 阅读 · 0 评论 -
C++遍历文件夹
finddata_t的使用可参考此处文章 那么到底如何查找文件呢?我们需要一个结构体和几个大家可能不太熟悉的函数。这些函数和结构体在的头文件中,结构体为struct _finddata_t ,函数为_findfirst、_findnext和_fineclose。具体如何使用,我会慢慢讲来。 首先讲这个结构体吧。struct _finddata_t ,这个结构体是用来存储文件各种信转载 2013-06-18 16:50:42 · 762 阅读 · 0 评论 -
关于MFC ActiveX控件开发的网址
http://hi.baidu.com/luoshupeng/item/09557061181b3990c4d249e9转载 2013-06-20 21:01:10 · 618 阅读 · 0 评论 -
expression:stream!=NULL
如果fopen()后返回的是NULL;就不能调用fclose()了; 用fopen()获得的文件句柄不是NULL,那么就需要用fclose()来关闭它。如果是NULL则不需要null就表示你打开文件失败了,根本都没有成功的访问文件,也就不存在对数据有什么损坏的可能。不需要关闭原创 2013-06-24 16:24:57 · 2529 阅读 · 0 评论 -
开发ocx控件不错的文章(初学者)
http://flashaway.blog.163.com/blog/static/95624576200942211853685/ 有好几篇,对初学者来说非常不错,但最终我的也没有实现自动下载安装,必须手动注册。。。转载 2013-06-20 21:13:03 · 2716 阅读 · 0 评论 -
C 日期增加 CString和CTime转换
下面这个是百度上找到的CString s("2001-8-31");CString s1(" 00:00:00");//好像必须是年月日时分秒都有的,并且是这个格式YYYY-MM-DD XX:XX:XX的s = s+s1;int nYear, nMonth, nDate, nHour, nMin, nSec;sscanf(s, "%d-%d-%d %d:%d:%d", &n原创 2013-06-24 10:10:52 · 1268 阅读 · 0 评论 -
fwrite()一个小错误
打开一个文件进行写操作,如果只open()打开一次,在没有close()的情况下连续多次fwrite(),但最后发现其实并没有写到文件中。 这是因为没有清楚文件缓存区。在fwrite()后面加上fflush()即可。fflush():清除文件缓冲区,文件以写方式打开时将缓冲区内容写入文件原创 2013-06-06 09:57:34 · 3155 阅读 · 0 评论 -
vs2010没有 ActiveX Control Test Container
vs2010中的TSTCON( ActiveX Control Test Container )工具非自动安装,而是作为一个例程提供。所以应找到该例程,并编译:如vs2010安装在默认路径则1, 进入:C:\Program Files\Microsoft Visual Studio 10.0\Samples\1033,可找到VC2010Samples.zip文件,2, 将其解决到同一个转载 2013-06-20 21:08:48 · 849 阅读 · 0 评论 -
字符串连接 C/C++
在编程中由于路径的问题会经常遇到字符串连接的问题,并且好多时候还是不同类型的字符串拼接,在这把最近几天接触的有关这方面的总结一下,以备以后不时之需。 一:最强大的sprintf() 它可以把C中几乎所有的数据类型转化为char保存在字符串中。这个函数在百度百科上介绍的非常清晰,在这我只写一个小的DEMO,如果看完还不明白的话就去这个网站仔细看看。http://b原创 2013-06-25 17:17:15 · 1312 阅读 · 0 评论 -
线程 互斥
/************************************************************************////unsigned long _beginthreadex( void *security, //Security descriptor for new thread; must be NULL for Windows 95 appl转载 2013-07-14 17:54:01 · 572 阅读 · 0 评论 -
int char* CString BSTR jstring类型转换
1 CString -----> intCString str("1234");int i= _ttoi(str);2 CString----->char* char *p_to_search = (LPSTR)(LPCTSTR)to_search;3 BSTR----->CSTEINGCString The_id(the_id); 4 char原创 2013-06-20 17:30:18 · 1335 阅读 · 0 评论 -
VC++6.0下新建工程中有17个选项,都是做什么用的?
要理解每种工程的作用需要很多基础知识,简要的一下: 1.ATL COM AppWizard 用来新建一个COM组件的向导,比如WORD里用的公式编辑器就是一个COM组件。 2.Cluster Resource Type Wizard 群集资源类型向导,用来创建可以到处用的资源项目,比如字体就是一种资源。 3.Custom AppWizard 这个是给高档用户用的自定义向导。 4.D转载 2013-07-01 15:29:37 · 1827 阅读 · 0 评论 -
二进制(十六进制)写文件 多出0D
今天太郁闷了,从摄像头中得到16进制的图片文件,然后写入本地照片,结果就是不对。显示不出来,后来用软件比对后发现生成的图片莫名其妙的多出了许多 0x0D,总以为是自己的代码有问题,压根也没想到去百度啊。结果憋的没办法了就找 度哥 了,TNND还真有这个问题啊。 查证结果如下:原来调用fwrite函数用只写(w)打开时,如果碰到换行符(0x0A),编译器会自动转换为回车换行符(原创 2013-07-05 20:04:06 · 2697 阅读 · 0 评论 -
日期加1、减1
加一天 加 86400秒减一天 减 86400秒下面用现在时间加一天和减一天,并打印出来。#include time_t sec;sec = time(NULL);printf ( "time is: %s", ctime (&sec) );sec = sec + 86400;printf ( "New time: %s", ctime (&sec)原创 2013-08-02 08:40:32 · 1400 阅读 · 0 评论 -
如何在C++获得系统时间(转)
//方案— 优点:仅使用C标准库;缺点:只能精确到秒级 #include #include int main( void ) { time_t t = time(0); char tmp[64]; strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z",localtime(&t) ); puts( tmp )转载 2013-08-02 08:13:51 · 629 阅读 · 0 评论 -
日志文件C++ 时间 文件 行数
#include #include#include #define Line __LINE__#define File __FILE__ void WriteLog(const char *file, int line, char * msg){ SYSTEMTIME st; GetLocalTime(&st); FILE *fp;原创 2013-08-09 09:36:10 · 882 阅读 · 0 评论 -
MFC自定义消息
消息机制是windows的典型运行机制,在MFC中有很多的消息如WM_BTN**等。但是在有些情况下我们需要自定义一些消息去做一些我们需要的功能,MFC的向导不能帮助我们做到这一点,我们可以通过添加相应的代码去完成这个功能。添加自定义消息操作如下:1. 建立MFC工程,如基于对话框的应用程序,Test。2. 在资源中添加要处理的消息的值,即在CTestDlg.h中添加 如下代码。转载 2013-08-09 16:13:36 · 633 阅读 · 0 评论 -
数据结构:循环队列(C语言实现)
http://blog.csdn.net/lpp0900320123/article/details/20694409生活中有很多队列的影子,比如打饭排队,买火车票排队问题等,可以说与时间相关的问题,一般都会涉及到队列问题;从生活中,可以抽象出队列的概念,队列就是一个能够实现“先进先出”的存储结构。队列分为链式队列和静态队列;静态队列一般用数组来实现,但此时的队列必须是循环队列,否则会转载 2016-09-05 14:29:24 · 651 阅读 · 0 评论