摘要:
今日将VC2005写的DLL的源码转到VC6时,弹出对话框时,报告: ---------------------------Microsoft Visual C++ Debug Library---------------------------Debug Assertion Failed! Program: D:\工作目录\Topology VC6.0\Bin\Test_Topology.e... 阅读全文
随笔分类 - C++技巧
AFX_MANAGE_STATE(AfxGetStaticModuleState())
2007-06-29 21:35 by flyingfish, 3190 阅读, 收藏, 编辑
摘要:
AFX_MANAGE_STATE(AfxGetStaticModuleState());//用于模块切换时的状态保护, 1.AfxGetStaticModuleState()指向当前模块状态; 2.当前函数调用结束后原模块的状态自动被恢复; 3.用于DLL中所调用MFC函数、类、资源时的模块状态切换; 阅读全文
转载:使用感受: VC2005 VC6.0
2007-06-29 19:12 by flyingfish, 3558 阅读, 收藏, 编辑
摘要:
用vc2005找不到OnInitDialog ,搜索后发现这篇文章,觉得有些用处就收藏过来。看来大家都有这种感觉,呵呵。 不知道下一版本的VS会成为什么样子。原文在这里。 http://blog.csdn.net/wvw/archive/2006/12/14/1443323.aspx#524279 http://topic.csdn.net/t/20061214/23/5231939.html *... 阅读全文
VS2005的断点无效问题
2007-06-19 08:11 by flyingfish, 3292 阅读, 收藏, 编辑
摘要:
近日VS2005调试程序时,一个文件中无法设置断点,提示“当前不会命中断点。源代码与原始版本不同。”折腾了好久都没搞定。 最后google到了下边两篇文章,终于解决。 收藏在此。 http://msdn2.microsoft.com/zh-cn/library/h6aesyw2(vs.80).aspx http://qjgl.spaces.live.com/Blog/cns!30809769A... 阅读全文
C++中使用接口
2007-06-05 15:29 by flyingfish, 28428 阅读, 收藏, 编辑
摘要:
来自网络,出处不详。面向对象的语言诸如JAVA提供了Interface来实现接口,但C++却没有这样一个东西,尽管C++ 通过纯虚基类实现接口,譬如COM的C++实现就是通过纯虚基类实现的(当然MFC的COM实现用了嵌套类),但我们更愿意看到一个诸如 Interface的东西。下面就介绍一种解决办法。首先我们需要一些宏: //// Interfaces.h//#define Interface c... 阅读全文
珍藏:ACE自适配通信环境中文技术文档
2007-05-29 10:06 by flyingfish, 4545 阅读, 收藏, 编辑
摘要:
C++编写网络程序可选框架:1、Winsock API:C语言格式的,纯API函数,感觉上和用OCI整Oracle数据库程序差不多2、MFC的CSocket类,跨平台肯定Over。3、ACE网络库:据说目前最强大的网络库,可解决跨平台问题,性能良好4、Indy:原来在BCB中用过,VC不知道可以不,很好用,没查。5、Boost.Asio网络库:新出炉不久,资源匮乏,用于工作有点冒险。6、Boost... 阅读全文
CPL - Common Portability Library库的感想
2007-04-24 08:31 by flyingfish, 1066 阅读, 收藏, 编辑
摘要:
现在经常觉得,对技术的掌握有些马虎,经常是解决问题了也就不去深究原因了,似乎没有开始学习程序设计时的那股钻劲了,也许以后应该换别的方向发展,技术细节永远都是吸引人的,尤其是初学者。然而比细节更重要的东西我们还没有深刻的认识到。架构、模式、工程、以及管理更加难于掌握也更加的重要,最近作东西时深刻体会到这一点。大型项目尤其那些需要数以年计来开发的系统如果架构做不好,管理跟不上,辛辛苦苦的东西可能最后还... 阅读全文
换底公式 是什么?
2007-04-23 22:16 by flyingfish, 8367 阅读, 收藏, 编辑
摘要:
哈哈,研究生快毕业了,初中学的数学都快忘记了。 今天写代码,里边要对一个数求以2为底的对数,函数库只有log,log10。 一下子还真难住了,记得应该可以互换的,确切怎么换不知到了,问了几个人竟然也不知,到网上查,问者颇多。哈哈,惭愧。 换底公式: 以a为底N的对数等于以m为底N的对数除以以m为底a的对数。 logaN=logmN /logma 证明: 设a^b=N…………① 则b=logaN... 阅读全文
摘录的匈牙利命名法
2007-04-18 14:25 by flyingfish, 1625 阅读, 收藏, 编辑
摘要:
c++ 命名书写规范 命名规范和C/C++源代码书写 来源:http://www.codeguru.cn/ShowThread.aspx?PostID=1597 命 名 规 范(试行) 通则: 1、在所有命名中,都应使用标准的英文单词或缩写。不得使用拼音或拼音缩写,除非该名字描述的是中文特有的内容,如半角、全角, 声母、韵母等。 2、所有命名都应遵循达意原则,即名称应含义清晰、明确。 3、所有命名... 阅读全文
MSDN:CFile和CStdioFile区别以及CString中的'\r\n'
2007-04-15 21:32 by flyingfish, 4240 阅读, 收藏, 编辑
摘要:
调试《Read tiff from memory(从内存流读取TIFF)》一文的代码时为了模拟内存中的TIFF,采用CStdioFile将Tiff读取内存,然后作处理,奇怪的,对有的TIFF文件显示正常,有的不正常,一时找不知道什么原因,怀疑写的TIFF文件有问题。后来一个同事把CStdioFile改为CFile就好了,细查后发现是由于两个类读取模式不同造成的: Difference betwe... 阅读全文
收藏:fread函数和fwrite函数
2007-04-15 14:07 by flyingfish, 3332 阅读, 收藏, 编辑
摘要:
1.函数功能 用来读写一个数据块。 2.一般调用形式 fread(buffer,size,count,fp); fwrite(buffer,size,count,fp); 3.说明 (1)buffer:是一个指针,对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。 (2)size:要读写的字节数; (3)count:要进行读写多少个size字节的数据项;... 阅读全文
Read tiff from memory(从内存流读取TIFF)
2007-04-15 10:10 by flyingfish, 2979 阅读, 收藏, 编辑
摘要:
libtiff提供的TIFFOpen函数值能够从文件打开TIFF,如果想从内存流,或者数据库中的BLOB字段读取则不是很方便,或者我们会把流存为临时的TIFF文件再打开,那显然不很经济。关于如何从内存留读取TIFF格式图像数据,在libtiff的用户共享包里有个例子,参考: http://www.libtiff.org/contrib.html contrib/mfscode from Mik... 阅读全文
Oracle存储过程中执行DDL操作
2007-04-13 15:48 by flyingfish, 2081 阅读, 收藏, 编辑
摘要:
Create Or Replace Procedure My_Proc AsSqlddl Varchar2(1000);BeginSqlddl := 'create table MyTable(ID Number(5), Name Varchar2(20))';Dbms_Output.Put_Line(Sqlddl);Execute Immediate Sqlddl;End; 阅读全文
OTL调用Oracle存储过程
2007-04-13 15:08 by flyingfish, 3010 阅读, 收藏, 编辑
摘要:
OTL很早前用过,今天写东西要调存储过程,程序写完了,调试死活通不过,折腾了一早晨。 最后才发现错误,这里总结一下: 1、代码写的不规范。 有个参数后边少写了个“,”以至于总是抱错。而单独写的测试例子就没问题,后来一步一步跟踪了后才发现。 2、调用格式 a、如果#define OTL_ORA9I // Compile OTL 4/OCI8编译 则过程调用采用: begin 过程名(:参数1,:参... 阅读全文
收藏:VC++获得当前系统时间的几种方案
2007-04-13 09:05 by flyingfish, 15135 阅读, 收藏, 编辑
摘要:
//方案— 优点:仅使用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(&... 阅读全文
如何不传长度测出指针指向目标的个数?
2007-04-11 10:52 by flyingfish, 1188 阅读, 收藏, 编辑
摘要:
这个问题是个很基本的问题,却是经常搞混。 今天找了资料把它给搞明白了,免得下次还犯错。 看了这个文章如何知道一个char*里有多少个字符这么说: sizeof是编译时的概念。你可以把它想象成宏。编译时sizeof(xxx)被xxx的大小所替代。 所以sizeof(char *)被4替代(指针的大小是4) char str[255]; sizeof(str);就可以得... 阅读全文
Dll中导出导入时巧用条件编译指令共享头文件
2007-04-09 13:18 by flyingfish, 1128 阅读, 收藏, 编辑
摘要:
同一个解决方案中,如果要在某个DLL工程中封装一些功能,则存在一个导入导出函数或类的问题,导出要用dllexport,导入时则用dllimport。如果不采用预编译指令,可能需要写两份头文件,一份用dllexport声明函数供dll自己用,另一份则用dllimport声明供dll的客户端(或叫宿主)程序用。 这样会很不爽,如果改动,就得两个都改,使用条件编译指令,结合适当的宏定义就可以避免这种麻... 阅读全文
Windows下编译gdal使其支持proj
2007-04-09 12:50 by flyingfish, 2312 阅读, 收藏, 编辑
摘要:
要使gdal支持proj中的一些投影操作,需要事先下载proj源码编译,编译好后拷贝其动态库proj.dll到gdalxx.dll同目录下即可。 在编译gdal时,关于proj的链接控制选项在nmake.opt的PROJ.4 stuff节 # PROJ.4 stuff# Uncomment the following lines to link PROJ.4 library statically... 阅读全文
CFileDialog的lpszFilter参数
2007-04-08 17:12 by flyingfish, 2703 阅读, 收藏, 编辑
摘要:
VC中CFileDialog类的lpszFilter参数用来通过后缀过滤文件。每次用,每次都要去查找拷贝,写到这里好找,呵呵。 如果要支持多个后缀,msdn介绍的方法是将上面的参数设成: szFilter[] = "Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.x... 阅读全文
收藏: C++ 运算符重载 转换函数
2007-04-04 16:21 by flyingfish, 2062 阅读, 收藏, 编辑
摘要:
运算符重载一直掌握的不好,看到这几篇文章很好,全文收藏过来备用。 原文出自CSDN: 王老师 C++ 运算符重载 转换函数 第一讲 王老师 C++ 运算符重载 转换函数 第二讲 王老师 C++ 运算符重载 转换函数 第三讲 《第一讲》 运算符函数:operator 运算符 运算符重载,两种方式: a.成为成员函数 b.名字空间函数(友元函数) 不能重载的运算符有: ::, ., .*, ?: ... 阅读全文