编程心得
文章平均质量分 70
yushf
诚实勤劳爱好编程求知欲极强不怕难题敢于挑战相信技术从底层学起才是硬道理热爱C
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
使用GDI+重画ListView
我们使用GDI+的画刷渐变效果重画ListView,使ListView看起来更好看一些(好不好看得依个人爱好了!)1、在Delphi中新建一个Win32 Form的工程,在mainform上放置一个ListView;2、设置ListView的ViewStyle属性为vsReport;3、为ListView添加几个列;4、为ListView的Items添加几个测试数据;5、原创 2008-09-25 11:06:00 · 1347 阅读 · 0 评论 -
IOCP日记
GetCompleteIOStatus 如果返回true,代表一个包出列,所有返回参数都有效; 如果返回false,且overlapped为空,代表失败,其它参数也无效; 如果返回false,且overlapped不为空,代表一个包出列,但I/O操作失败,其它参数值有效,需要GetLastError进一步获取错误原因; WSARecv的lpFlags参数必须传入地址,否则返回WSAEFAU原创 2013-08-20 09:55:59 · 258 阅读 · 0 评论 -
动态数组
1、动态数组是一个指向数组的指针; 例如有这样一个动态数组: var bu: array of integer; begin SetLength(bu, 20); //ZeroMemory(@bu, 20*SizeOf(Int原创 2011-09-21 09:25:14 · 330 阅读 · 0 评论 -
关于GetGlyphOutline
1、使用GetGlyphOutline返回的字符位图数据中(使用GGO_BITMAP参数),行是以DWORD方式对齐的(Windows的限制), 例如:字符的宽度为50,那么返回的数据中行是以8字节对齐的 而在OpenGL的glBitmap函数中,数据的行是与字符的宽度对齐的原创 2011-09-21 09:23:23 · 475 阅读 · 0 评论 -
Delphi+COM+WideString
困扰了我好久的问题,终于弄明白了,TNND! Delphi+COM+WideString 1、在COM中必须使用WideString,而不是AnsiString; 2、如果接口样式是procedure GetStr(out ss: WideString)原创 2011-09-21 09:17:58 · 516 阅读 · 0 评论 -
Delphi中使用Interface的好处
1、实现多继承 Delphi中的类是不能多继承的,我们可以通过Interface来间接实现: TComplexClass = class(TParentClass, Itest1, Itest2, Itest3) end; 2、生存期自管理 Delphi中的Int原创 2011-08-12 10:18:33 · 943 阅读 · 0 评论 -
SOCKET无阻塞连接
SOCKET无阻塞连接下面的代码实现Socket 无阻塞 connect#include int APIENTRY shared_connect_nonb(int skt, const struct sockaddr* sa, int salen, int timeout){ int n, error, result = SOCKET_ERROR; long noblock = 1;原创 2008-09-25 11:18:00 · 380 阅读 · 0 评论 -
宏定义使用技巧:
宏定义使用技巧:1、把枚举值转换为字符串#define CaseEnum(e) case(e):printf(#e)2、利用二进制表达式得到编译期常量#define cat(a, b) a##bcat(1, 2) = 123、给标准断言添加描述性注释#define assertmsg(a,b) assert(a && b)void* p = NULL;assertmsg(p, "p is null转载 2008-09-25 16:03:00 · 330 阅读 · 0 评论
分享