博文

第二十章 DLL高级技巧(2010-10-21 17:12:00)

摘要:第二十章 DLL高级技巧 1.概览  1.1动态加载DLL文件 LoadLibraryEx                 HMODULE LoadLibraryEx( PCTSTR pszDLLPathName, HANDLE hFile, DWORD dwFlags);               返回DLL加载到进程空间原首地址。               dwFlags 可以有以下几个值               (1) DONT_RESOLVE_DLL_REFERENCES                               建议永远不要使有这个值,它的存在仅仅是为了向后兼容、                               更多内容请访问:http://blogs.msdn.com/oldnewthing/archive/2005/02/14/372266.aspx   ......

阅读全文(2636) | 评论:0

使用前向和反向迭代器遍历list(2010-10-19 17:37:00)

摘要: #include <iostream>
#include <list>
using namespace std; int main(int argc, char* argv[])
{
     int iArr[] = { 1,2,3,4,5,6,7,8,9 };
     list<int> myList(iArr,iArr+9);
     list<int>::iterator it = myList.begin();
     int iTemp = 0;
     // 前向iterator
     cout << "Normal data: \n";
     for (it=myList.begin(); it!=myList.end(); it++)
     {
          cout << *it << " ";
     }
     cout << "\n";      // 反向iterator
     list <int>::reverse_iterator rIt; 
  &n......

阅读全文(9479) | 评论:0

VC获取应用程序版本关键代码(2010-09-30 15:55:00)

摘要:Requirements   Windows NT/2000/XP: Included in Windows NT 3.1 and later.
  Windows 95/98/Me: Included in Windows 95 and later.
  Header: Declared in Winver.h; include Windows.h.
  Library: Use Version.lib.       TCHAR szApp[MAX_PATH] = {0};
 GetModuleFileName(NULL,szApp,MAX_PATH);
 DWORD dwVerInfoSize = GetFileVersionInfoSize(szApp,0);    ASSERT(dwVerInfoSize>0);
 BYTE *pVerInfor = new BYTE[dwVerInfoSize];
 if(!pVerInfor)
 {
        ASSERT(pVerInfor);
        return;
 }    VERIFY(GetFileVersionInfo(szApp,0,dwVerInfoSize,pVerInfor));    VS_FIXEDFILEINFO *pVsInfo = NULL;
 UINT uVerSize = 0;    CString strWinText,strVer;
 if(VerQueryValue(pVerInfor,_T("......

阅读全文(5010) | 评论:0

【转】英语达人告诉你,如何用美剧真正提升你的英语水平(2010-09-20 19:13:00)

摘要:没想到这篇日志会这么火,看到很多童鞋讨论有关美剧学习英语到底有没有用,以及用哪部美剧练习,我在这里想说这只是一个参考,世界上没有绝对的事情,究竟有没有用看个人,想必在校内上至少是高中生,大部分是大学生吧,如果你到现在还无法衡量自己的英语水平或者依旧被英语牵着鼻子走,我只能说我很抱歉,我觉得这不仅是个人的悲哀更是中国教育的悲哀。如果你到现在连自己基本的评判标准的话,即使存在完美无缺的日志,你依旧照搬照抄,不适合自己的实际情况,那一切皆为徒劳。就算这是学习英语的一条途径,有几个人能真的照着做呢?

  1. 不是所有的美剧都适合学英语

  如果喜欢看如《24小 时》这样的动作片, 那你基本会讲一口流利的"呯""轰""啊"之类的开枪爆炸声英语.如果你喜欢看如《豪斯医生》这种专业性很强的片子,那你基本会讲一些如 MRI,CT,Tumor之类的连自己都不明白的江湖郎中英语.如果看的是《越狱》,基本不用举手,别人就知道你是黑手党的了.不是所有剧都合适的,用来学习的美剧,是要有一定对话量,生活化的,平民化的片子.

  2. 开着字幕看是没有前途的

  很 多人喜欢开着字幕看,觉得会有参照更有帮助,其实这是在拖你的后腿.就像很多人结婚,喜欢找个比自己丑的伴娘,以为这样自己就进步了,事实上是被拖下水 了.中文是母语,对我们的眼球来说有无比强大的吸引力,只要在那里,你一定会看,就像放个美女在眼前,男人一定会看,不看的可能是老婆在一边,或是他爱人 也是个男人.一般人永远会不自觉通过中文字幕理解英语,而不是通过听懂-理解-记忆-重复,这样的过程学到英语.

  3.看一遍是不够的

  看 一遍根本不能叫学英语,充其量只能叫娱乐.如果是抱着学习的目的,必须反复看,精听,理解句子词语的意思,为我所用才行.如果看一遍,基本你就被情节彻底 打败了,或哭或笑,反复思考自己该拥有<HEROES>里的哪种超能力,担心下集可以下载前的日子该怎么过,哪还有心思管学英语这码事,哪怕讲 的是柬埔寨语都无所谓.所以通过看个几遍,基本到了对剧情已经免疫的程度,如看老友记看到已经笑不出来了,那差不多可以洗干净耳朵仔细听了.

阅读全文(3651) | 评论:0

What’s New In Python 3.0(2010-09-18 14:23:00)

摘要:Table Of Contents What’s New In Python 3.0 Common Stumbling Blocks Print Is A Function Views And Iterators Instead Of Lists Ordering Comparisons Integers Text Vs. Data Instead Of Unicode Vs. 8-bit Overview Of Syntax Changes New Syntax Changed Syntax Removed Syntax Changes Already Present In Python 2.6 Library Changes PEP 3101: A New Approach To String Formatting Changes To Exceptions Miscellaneous Other Changes Operators And Special Methods Builtins Build and C API Changes Performance Porting To Python 3.0 Previous topic What’s New in Python Next topic What’s New in Python 2.7 This Page Show Source ......

阅读全文(3675) | 评论:0

Python3.x和Python2.x的区别(2010-09-18 14:18:00)

摘要:Python3.x和Python2.x的区别 这个星期开始学习Python了,因为看的书都是基于Python2.x,而且我安装的是Python3.1,所以书上写的地方好多都不适用于Python3.1,特意在Google上search了一下3.x和2.x的区别。特此在自己的空间中记录一下,以备以后查找方便,也可以分享给想学习Python的friends. 1.性能
Py3.0运行 pystone benchmark的速度比Py2.5慢30%。Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可
以取得很好的优化结果。
Py3.1性能比Py2.5慢15%,还有很大的提升空间。
2.编码
Py3.X源码文件默认使用utf-8编码,这就使得以下代码是合法的:
    >>> 中国 = 'china'
    >>>print(中国)
    china
3. 语法
1)去除了<>,全部改用!=
2)去除``,全部改用repr()
3)关键词加入as 和with,还有True,False,None
4)整型除法返回浮点数,要得到整型结果,请使用//
5)加入nonlocal语句。使用noclocal x可以直接指派外围(非全局)变量
6)去除print语句,加入print()函数实现相同的功能。同样的还有 exec语句,已经改为exec()函数
   例如:
     2.X: print "The answer is", 2*2
     3.X: print("The answer is", 2*2)
     2.X: print x,   ......

阅读全文(3975) | 评论:0

VC 链接器工具错误和警告(2010-09-14 18:17:00)

摘要:LINK、LIB、DUMPBIN 和 EDITBIN 产生这些错误和警告。若要获得特定错误信息的相关帮助,请在“输出”窗口中的错误号上单击鼠标并按 F1,在“索引”的“查找”框中键入错误号,或单击下面的链接。 链接器工具错误 LNK1000 链接器工具错误 LNK1101 链接器工具错误 LNK1102 链接器工具错误 LNK1103 链接器工具错误 LNK1104 链接器工具错误 LNK1105 链接器工具错误 LNK1106 链接器工具错误 LNK1107 链接器工具错误 LNK1108 链接器工具错误 LNK1109 链接器工具错误 LNK1110 链接器工具错误 LNK1111 链接器工具错误 LNK1112 链接器工具错误 LNK1113 链接器工具错误 LNK1115 链接器工具错误 LNK1117 链接器工具错误 LNK1118 链接器工具错误 LNK1119 链接器工具错误 LNK1120 链接器工具错误 LNK1121 链接器工具错误 LNK1123 链接器工具错误 LNK1127 链接器工具错误 LNK1129 链接器工具错误 LNK1130 链接器工具错误 LNK1131 链接器工具错误 LNK1132 链接器工具错误 LNK1136 链接器工具错误 LNK1137 链接器工具错误 LNK1140 链接器工具错误 LNK1141 链接器工具错误 LNK1143 链接器工具错误 LNK1145 链接器工具错误 LNK1146 链接器工具错误 LNK1147 链接器工具错误 LNK1148 链接器工具错误 LNK1149 链接器工具错误 LNK1152 链接器工具错误 LNK1154 链接器工具错误 LNK1155 链接器工具错误 LNK1156 链接器工具错误 LNK1158 链接器工具错误 LNK1159 链接器工具错误 LNK1160 链接器工具错误 LNK1161 链接器工具错误 LNK1162 链接器工具错误 LNK1163 链接器工具错误 LNK1164 链接器工具错误 LNK1165 链接器工具错误 LNK1166 链接器工具错误 LNK1167 链接器工具错误 LNK1168 链接器工具错误 LNK1169 链接器工具错误 LN......

阅读全文(7646) | 评论:0

GDI+在内存中绘制,并保存为BMP、PNG、JPEG格式的图片关键代码(2010-09-11 12:02:00)

摘要:// 获取指定图片格式CLSID int GetEncoderClsid(const WCHAR* format, CLSID* pClsid)
{
 UINT num= 0;
 UINT size= 0;  ImageCodecInfo* pImageCodecInfo= NULL;  GetImageEncodersSize(&num, &size);
 if(size== 0)
 {
  return -1;
 }
 pImageCodecInfo= (ImageCodecInfo*)(malloc(size));
 if(pImageCodecInfo== NULL)
 {
  return -1;
 }  GetImageEncoders(num, size, pImageCodecInfo);  for(UINT j=0; j< num; ++j)
 {
  if(wcscmp(pImageCodecInfo[j].MimeType, format)== 0)
  {
   *pClsid= pImageCodecInfo[j].Clsid;
   free(pImageCodecInfo);
   pImageCodecInfo= NULL;
   return j;
  }
 }  free(pImageCodecInfo);
 pImageCodecInfo= NULL;  return -1;
} &......

阅读全文(8678) | 评论:0

GDI+双缓冲绘制步骤(2010-09-11 11:56:00)

摘要:双缓冲的具体步骤:1、在内存中建立一块“虚拟画布”: Bitmap bmp = new Bitmap(600, 600); 2、获取这块内存画布的Graphics引用: Graphics g = Graphics.FromImage(bmp); 3、在这块内存画布上绘图: g.FillEllipse(brush, i * 10, j * 10, 10, 10); 4、将内存画布画到窗口中 this.CreateGraphics().DrawImage(bmp, 0, 0);      ......

阅读全文(4218) | 评论:0

GDI+ 文本输出(2010-09-06 22:17:00)

摘要:需要GDI+环境支持   Graphics graphics(pDC->m_hDC); FontFamily  fontFamily(L"Times New Roman"); //字体设置
Font        font(&fontFamily, 24, FontStyleRegular, UnitPixel); // 文本大小、显示方式设置 更详细的请参考MSDN
PointF      pointF(30.0f, 10.0f); // 输出起始点
SolidBrush  solidBrush(Color(255, 0, 0, 255)); // 刷子

graphics.DrawString(L"Hello", -1, &font, pointF, &solidBrush);......

阅读全文(3892) | 评论:0