Just for you……

你若给我一片蓝天,我必给自己一双翅膀……

导航

随笔分类 -  C/C++

C++ -windows与unix路径分隔符
摘要:文件路径中通常使用正斜杠和反斜杠在Windows中C++中“\\”是一种转义字符,他表示一个‘\’,就像\n表示回车一样。所以C++中的路径名:D:\matcom45\doc\users\_themes\m.dat应为:CString filename=_T("D:\\matcom45\\doc\\users\\_themes\\m.dat");或CString filename=_T("D:/matcom45/doc/users/_themes/m.dat");也就是说"\\"其实就是‘\’,这样写只是方式转移字符的发生!!【注意】 阅读全文

posted @ 2013-09-22 19:13 duboway 阅读(3341) 评论(0) 推荐(1)

DLL中导出STL模板类的问题
摘要:接上一篇。上一篇的dll在编译过程中一直有一个警告warning C4251: ‘CLASS_TEST::m_structs’ : class ‘std::vector’ needs to have dll-interface to be used by clients of class ,百度之才发现是因为DLL中导出了STL中的类,二STL中的类默认是没有导出的,因此报告这个警告。程序中消除warning有两种方法:消极一点不去理他,反正不是error;积极一点,则想办法去掉。去掉又用两种方法:一种使用#pragma warning(disable: xxxx),眼不见,心不烦;另外就是找 阅读全文

posted @ 2013-09-21 21:04 duboway 阅读(1988) 评论(0) 推荐(0)

DLL使用总结
摘要:最近项目中使用到了DLL,因此就把最近一段时间的学习总结一下,以备不时之需。一、相关概念1、动态链接库自从微软推出第一个版本的Windows操作系统以来,动态链接库(DLL)一直是Windows操作系统的基础。动态链接库通常都不能直接运行,也不能接收消息。它们是一些独立的文件,其中包含能被可执行程序或其它DLL调用来完成某项工作的函数。只有在其它模块调用动态链接库中的函数时,它才发挥作用。WindowsAPI中的所有函数都包含在DLL中。其中有3个最重要的DLL,Kernel32.dll,它包含用于管理内存、进程和线程的各个函数;User32.dll,它包含用于执行用户界面任务(如窗口的创建和 阅读全文

posted @ 2013-09-21 20:22 duboway 阅读(512) 评论(0) 推荐(0)

LIBPNG使用小结(二)
摘要:之前写的LIBPNG库学习小结介绍了怎么样自定义LIBPNG库的write、read、flush函数,而不使用LIBPNG库提供的默认函数。上一篇讲述的都是在单线程的情况下,今天将程序升级,放在多线程下面跑,发现了几个问题:首先说明一下:上一篇中是用struct保存的数据结构,而这次需要将数据封装在类中,因此程序有点小变动。以下是类的部分定义:private: png_infop m_pInfo; png_structp m_pPng; char *m_pImage;其中m_pImage就是上一篇tData中的data。上一篇中tData是全局定义的,在多线程的情况下会发生争... 阅读全文

posted @ 2013-07-21 23:23 duboway 阅读(1895) 评论(1) 推荐(0)

LibPNG 库学习小结
摘要:前一段时间使用GDAL库进行瓦片切割,由于需要将生成的图片数据直接写入数据库,不需要在本地磁盘上进行IO操作,因此跟踪GDAL的源代码(过程就不说了),发现GDAL库调用了LibPNG库进行相应的PNG格式编码工作,因此我研究了一下LibPNG库,下面是对自己学习的一点总结:libpng程序结构LibPNG库的处理流程如下:判断文件是否是png文件通过文件名来判断文件是否是png文件。这里的fp是指向文件指针的指针。主要是作为出口参数。如果文件成功打开后不关闭文件,等待以后对文件操作结束后再关闭文件。FILE *fp = fopen(file_name, "rb");if 阅读全文

posted @ 2013-06-01 22:43 duboway 阅读(4275) 评论(2) 推荐(0)