2013年7月31日

【C# C++】C#中调用msvcr100.dll中的_beginthreadex函数

摘要: msvcr100.dll是VS2010的C运行时库DLL, _beginthreadex开启子线程的函数就在这个DLL里面实现unsigned long _beginthreadex(void *security, //安全属性unsigned stack_size, //线程栈大小unsigned ( __stdcall *start_address )( void * ), //线程函数void *arglist, //线程函数的参数 */unsigned ... 阅读全文

posted @ 2013-07-31 16:40 崔好好 阅读(759) 评论(0) 推荐(0)

2013年7月30日

【C++11】 lambda表达式

摘要: i.e.int x = 10;int y = 20;int z = [&]{ x = x * x; y = y * y; return x + y;}();上面z后面以[]开头的为一个lambda表达式,中括号里可以有用来表示捕捉符号,等号"="表示以值传递的方式使用lambda外部变量, 与号"&"表示引用方式使用;mutable表示在lambda表达式中可以对变量进行修改lambda外部的变量的值。如下: auto add = [=](int param1, int param2) { param1 += 100; //error, 阅读全文

posted @ 2013-07-30 21:00 崔好好 阅读(596) 评论(0) 推荐(0)

2013年7月7日

【windows核心编程】 第八章 用户模式下的线程同步

摘要: Windows核心编程 第八章 用户模式下的线程同步1、 线程之间通信发生在以下两种情况:① 需要让多个线程同时访问一个共享资源,同时不能破坏资源的完整性② 一个线程需要通知其他线程某项任务已经完成2、 原子访问所谓原子访问就是一个线程在访问某个资源的同时能够保证没有其他线程会在同一时刻访问同一资源。CPU一个最小操作单位并不是一条编程语言指令,所以即使在线程中只有一行赋值语句,在CPU看来却不是一条语句,所以如果两个线程中有同样的一行赋值语句,那么也可能会发生不可预料的结果。Windows提供了一系列原子操作的函数,Interlocked系列函数。LONG InterlockedExchan 阅读全文

posted @ 2013-07-07 22:05 崔好好 阅读(961) 评论(0) 推荐(0)

2013年6月30日

【转载】【内存对齐(二)】__declspec( align(#) )的用法和大小计算

摘要: 转自:http://www.cppblog.com/deercoder/archive/2011/03/13/141747.html感谢作者!在上面讲到了关于pack的内存对齐和计算方法,这里继续讲实现内存对齐的另一种方式:__declspec( align(#) )__declspec( align(#) )和#pragma pack( n )有密切联系。当一个变量或结构体同时受两者影响时,前者的优先级高。成员的地址决定于前者及后者,其要么是前者的倍数,要么是后者的倍数,要么是成员的大小的倍数,取最小。结构体最后的大小于前者有关,其要么是前者的倍数,要么是结构体中最大偏移量的倍数,取最大。要 阅读全文

posted @ 2013-06-30 20:48 崔好好 阅读(498) 评论(0) 推荐(0)

2013年6月27日

【软件多国语言】一个demo

摘要: 之前上学的时候做过一个东西,需要中英文软件界面,并且需要随时可以切换,当时是师妹来做的,用的最直接也是最笨的办法, what?if(中文){ button1.Text = "花姑娘";}else{ button1.Text = "flower girl";}网上的解决方案一般是用资源DLL,即写一个控制台项目--DLL,在里面添加stringTable资源,做中英文两个DLL,其中的IDS_XX是相同的,每个IDS_XX对应一个词的中英文版,例如英文版的IDS_BTN_PLAY-----101-----“PLAY”,中文版的IDS_BTN_PLAY--- 阅读全文

posted @ 2013-06-27 16:12 崔好好 阅读(288) 评论(0) 推荐(0)

【ActiveX】实现安全接口

摘要: 转自:http://www.cnblogs.com/carekee/articles/1772201.html感谢原作者!ActiveX控件打包成cab后,在脚本中调用中时,要保证控件的安全性才能在你的网页上安全运行,有两种方法来实现这一保证:实现一个名称为IObjectSafe的接口到你的控件。如果IE发现你的控件支持IObjectSafety,它调用 IObjectSafety::SetInterfaceSafetyOptions 方法然后才载入你的控件。另外一种方法需要修改注册表,我将会在另外一篇文章中详细介绍。1。创建了一个叫做“tryISafeObject.ocx”的MFC Acti 阅读全文

posted @ 2013-06-27 11:19 崔好好 阅读(639) 评论(0) 推荐(0)

2013年6月20日

【C/C++运行时库】 /MT /MTd /MD /MDd对C/C++运行库的影响

摘要: 欢迎转载转载请注明出处:http://www.cnblogs.com/cuish/p/3146937.html测试VS中【项目属性】-【C/C++】-【代码生成】选项中的【运行库】- 【 /MT, /MTd, /MD, /MDd】不同的选择对C/C++运行库的影响:环境: windows7 64位 + VS2010项目类型:win32控制台项目查看工具:depends下面表格中为使用depends查看到的结果Debug C++ Runtime C Runtime------------------------------------------------------------------- 阅读全文

posted @ 2013-06-20 19:32 崔好好 阅读(2030) 评论(2) 推荐(0)

2013年6月19日

【windows核心编程】 第六章 线程基础

摘要: Windows核心编程 第六章 线程基础欢迎转载转载请注明出处:http://www.cnblogs.com/cuish/p/3145214.html1、 线程的组成① 一个是线程的内核对象,操作系统用它管理线程。系统还用内核对象来存储线程统计信息② 一个线程栈,用于维护线程执行时所需的所有函数参数和局部变量。线程 == 内核对象 + 线程栈;进程是有惰性的,CPU调度是线程,进程永远不会被调度,进程好比一个公司,线程就是每个干活的业务部门。 进程可以看作是线程的容器(作业是进程的容器),线程要在进程的地址空间中执行代码和处理数据。进程需要更多的系统资源,为一个进程创建一个虚拟的地址空间需要大 阅读全文

posted @ 2013-06-19 23:55 崔好好 阅读(1254) 评论(0) 推荐(0)

2013年6月11日

【windows核心编程】 第五章 作业

摘要: Windows核心编程第五章 作业1、 作业可以看成是进程的容器,可以有多个进程运行在作业中,便于把这组进程看作一个整体来处理,可以对作业(中的进程)进行限制,即限额。作业中的进程不能脱离作业,也就不能从一个作业转移到另一个作业。把进程加入作业的过程是:创建进程,创建标志一定要有CREATE_SUSPEND,即创建后挂起新进程的主线程,把新进程放入作业后调用ResumeThread(新进程.主线程)启动该新进程。 对于新进程中又生成的子进程来说,默认也是在作业中的,但是可以修改一些标志让新进程的子进程不运行在作业中。作业相当于一个【沙箱】,可以把一组进程组合在一起来限制进程能做什么,一个作业可 阅读全文

posted @ 2013-06-11 00:38 崔好好 阅读(519) 评论(0) 推荐(0)

2013年6月9日

【C# dijkstra迪杰斯特拉算法 最短路径】迪杰斯特拉算法 最短路径的C#实现

摘要: 作者:cuihao0532转载请注明出处:http://www.cnblogs.com/cuish/archive/2013/06/09/3129106.html适用于有向图和无向图,邻接矩阵存储方式 1 //graph:邻接矩阵形式存储的有向图或无向图 2 //nLength:点的个数 3 //nStart:起点在邻接矩阵中的位置 4 //nEnd:终点在邻接矩阵中的位置 5 //INFINITY: 表示没有路径的最大值 6 //返回值:保存最短路径正确顺序的int数组,数组中只有一个起点时说明没有路径 7 //D[]数组保存起点到各个点的最短路径长度 8 //需要注意的是:由于在代码有中m 阅读全文

posted @ 2013-06-09 14:16 崔好好 阅读(3010) 评论(0) 推荐(0)

导航