VC++/C#
我本善良ab
这个作者很懒,什么都没留下…
展开
-
多线程编程之一——问题提出
<br />本文转VCBASE:http://www.vckbase.com/document/viewdoc/?id=1704<br />一、问题的提出<br />编写一个耗时的单线程程序:<br /> 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:<br />void CSingleThreadDlg::OnSleepSixSe转载 2011-03-05 22:58:00 · 436 阅读 · 0 评论 -
设计模式5-SingleTon单身模式
/**********************************************************************************************************************************************\* [说明]* 通常情况下,用户可以对应用系统进行配置,并将配置信息保存在配置文件中,应用系统在启动时首原创 2011-12-18 23:26:22 · 1023 阅读 · 0 评论 -
请不要做浮躁的设计人
转: http://blog.csdn.net/liquanhai/article/details/5282593 1.不要看到别人的回复第一句话就说:给个代码吧!你应该想想为什么。当你自己想出来再参考别人的提示,你就知道自己和别人思路的差异。2.初学者请不要看太多太多的书那会误人子弟的,先找本系统的学,很多人用了很久都是只对部分功能熟悉而已,不系统还是不够的。3.看帮助,不转载 2012-01-29 14:05:07 · 810 阅读 · 0 评论 -
优秀的SDK学习资料
转自木木: http://blog.csdn.net/liquanhai/article/details/4954912 进来学习SDK编程,感觉好多东西不够系统。网上找到的很好的资料。 (1):http://blog.csdn.net/beyondcode,API入门系列总结的相当不错。 (2)劝学网小雅整理的SDK编程http://www.quanxue.cn/J转载 2012-01-29 15:55:35 · 617 阅读 · 0 评论 -
C++ GUi 库介绍
转自: http://blog.csdn.net/zhaojinhai/article/details/1966422 在C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。由于库转载 2012-01-29 12:50:29 · 6682 阅读 · 0 评论 -
char*和CString转换
char*和CString转换CString 是一种很特殊的 C++ 对象,它里面包含了三个值:一个指向某个数据缓冲区的指针、一个是该缓冲中有效的字符记数(它是不可存取的,是位于 CString 地址之下的一个隐藏区域)以及一个缓冲区长度。 有效字符数的大小可以是从0到该缓冲最大长度值减1之间的任何数(因为字符串结尾有一个NULL字符)。字符记数和缓冲区长度被巧妙隐藏。(1) char转载 2013-08-09 16:11:35 · 582 阅读 · 0 评论 -
VS2010 项目引用system.Design.Dll失败,该如何处理?
使用vs2010创建一个windows控件库,想引用system.design,结果在.NET集合中没有看到。在网络上搜索一下,得出System.Design属于.Net Framework 4,而不属于 .Net Framework 4 Client Profile;而VS2010创建工程默认使用.Net Framework 4 Client Profile框架,因此,只需...原创 2013-11-20 17:37:19 · 4163 阅读 · 0 评论 -
WPF窗口如何获得一个句柄?
1) 在窗体事件内获得句柄privatevoidWindow_Loaded(object sender,RoutedEventArgs e){WindowInteropHelper wndHelper= newWindowInteropHelper(this); IntPtr wpfHwnd=wndHelper.Handle;}...转载 2012-12-15 22:38:12 · 11079 阅读 · 0 评论 -
C#基础知识:常用数据转换类
1)类型之间互转 基本类型之间转换有两种方式,使用强制转换和convert类进行转换 第1:使用类型进行强转;这种方式有限制; int a=1; bool b=false; a = (int)b; //错误,无法转换 byte c = 20; c = ...原创 2012-10-18 17:56:26 · 1260 阅读 · 0 评论 -
C#多个项目如何共用文件
其实非常简单,主要是日常没有注意到这个问题,操作如下所示:右键单击,从弹出菜单中选择【添加】-【现有项】;在弹出对话框中选择,选择文件,然后在【添加】按钮旁边有个箭头,单击箭头就会看见【添加为链接】的菜单,选择【添加为链接】方式来添加文件即可实现共享文件方式,如下图所示;添加成功后,文件显示如下图(文件图标不同):...原创 2012-10-08 18:09:20 · 6491 阅读 · 0 评论 -
C#实现多语言
C#实现多语言非常方便,步骤如下:一、设置窗体为支持多语言;1) LocalLizable = true; 2)language=英语;//您需要的多语言 3)这是窗体上的多语言设置成你需要语言; 如语言为英文时,button1.text="button1"; 如语言为中文时,button...原创 2012-07-22 20:25:00 · 4036 阅读 · 0 评论 -
.NET uml设计系列2:逆向工程
昨天我介绍了使用VS2010建模拓展的正向工程示例代码,介绍了如何建模及如何导出工程文件,今天我们将来讨论如何从已有代码中逆向工程出UML设计类图。首先,我们先来创建我们将要逆向工程的项目文件,项目很简单为了演示全面,我们分别建立了3个工程项目(类库),如图:该项目主要实现数据的加减乘除4种简单计算操作,主要为了演示怎样逆向工程及如何导出依赖项。下面分别介绍一下这3个类库的功能:...转载 2012-06-30 16:30:07 · 6583 阅读 · 4 评论 -
.NET uml设计系列1:正向工程
选中“建模项目”模板,设置名称为“TestModelingProject”及设置存储路径,点击【确定】按钮。这样我们就创建了一个建模项目,在VS2010中的解决方案资源管理器中会看到如下图:选中TestModelingProject建模项目,然后点击IDE菜单栏中的【体系结构】菜单项然后选择【新建关系图】弹出关系图选择页面目前共有如下几种关系图类别,我们以UML类图为例...转载 2012-06-30 16:27:39 · 2254 阅读 · 0 评论 -
.Net的UML正向和逆向工程浅析1
一直在想.NET关于UML的正向和逆向工程怎么突破,今天终于有了突破,开心。。。首先,需要安装VS2010 Ultimate(下载)。其次,下载 Visual Studio 2010的可视化和建模工具包:http://www.2cto.com/uploadfile/2011/1015/20111015035623739.rar----这个很重要,否则不可实现双向工程第1:建...原创 2012-06-30 16:25:51 · 2122 阅读 · 0 评论 -
C#的错误处理
1)源代码: private void button2_Click(object sender, EventArgs e) { try { int i = 2, j = 0; i = i / j; } ca...原创 2012-05-06 10:20:30 · 3190 阅读 · 1 评论 -
C#中的委托和事件(续)
来自 http://www.cnblogs.com/JimmyZhang/archive/2008/08/22/1274342.htmlC#中的委托和事件(续)引言如果你看过了 C#中的委托和事件 一文,我想你对委托和事件已经有了一个基本的认识。但那些远不是委托和事件的全部内容,还有很多的地方没有涉及。本文将讨论委托和事件一些更为细节的问题,包括一些大家常问到的问题,以及事件访问器...转载 2012-03-28 22:04:53 · 584 阅读 · 0 评论 -
设计模式4-Observer(观察者模式)
/**********************************************************************************************************************/* Observer模式:观察者模式* [说明]* 在一公文处理系统中,开发者定义了一个公文类OfficeDoc, 其中定义了公文具有的属性和处理原创 2011-12-18 18:37:53 · 389 阅读 · 0 评论 -
LINK : fatal error LNK1257: 代码生成失败
一般发生情况如下:1) 修改编译选项;2)将程序从一台机器拷贝到另外机器上 解决方法:1) 右键点击solution, 在弹出菜单中选择"清理";2)这时在"生成"程序,就OK了;原创 2011-09-22 11:50:49 · 10312 阅读 · 3 评论 -
vs2005: 使用类视图的向导添加方法或变量的时候会报脚本错误
在网络上查说vs2005和Ie8有冲突,搜索一下,大概是要在注册表中增加一项内容,如下所示Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVe原创 2011-09-22 12:12:21 · 2642 阅读 · 1 评论 -
多线程编程之三——线程间通讯
<br />七、线程间通讯<br /> 一般而言,应用程序中的一个次要线程总是为主线程执行特定的任务,这样,主线程和次要线程间必定有一个信息传递的渠道,也就是主线程和次要线程间要进行通信。这种线程间的通信不但是难以避免的,而且在多线程编程中也是复杂和频繁的,下面将进行说明。使用全局变量进行通信<br /><br />由于属于同一个进程的各个线程共享操作系统分配该进程的资源,故解决线程间通信最简单的一种方法是使用全局变量。对于标准类型的全局变量,我们建议使用volatile修饰符,它告诉编译器无需对该变量作转载 2011-03-05 23:11:00 · 464 阅读 · 0 评论 -
多线程编程之二——MFC中的多线程开发
<br />五、MFC对多线程编程的支持<br />MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。<br /> 工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外的用户输入,响应用户及系统所产生的事件和消息等。但对于Win32的API编程而言,这两种线程是没有区别的,它们都只需线程的启动地址即可启动线程来执行任务。<br /转载 2011-03-05 23:09:00 · 493 阅读 · 0 评论 -
Windows Socket五种I/O模型
<br />本文来自CSDN博客,转载请标明出处:<br />http://blog.csdn.net/byxdaz/archive/ 2008/03/02/2139515.aspx<br /> <br /> <br />如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的。Windows操作系统提供了选择(Select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(Overlapped I/O)和完成端口(Completion Po转载 2011-03-05 22:56:00 · 529 阅读 · 0 评论 -
多线程编程之四——线程的同步
<br />八、线程的同步<br /> 虽然多线程能给我们带来好处,但是也有不少问题需要解决。例如,对于像磁盘驱动器这样独占性系统资源,由于线程可以执行进程的任何代码段,且线程的运行是由系统调度自动完成的,具有一定的不确定性,因此就有可能出现两个线程同时对磁盘驱动器进行操作,从而出现操作错误;又例如,对于银行系统的计算机来说,可能使用一个线程来更新其用户数据库,而用另外一个线程来读取数据库以响应储户的需要,极有可能读数据库的线程读取的是未完全更新的数据库,因为可能在读的时候只有一部分数据被更新过。<br转载 2011-03-05 23:13:00 · 604 阅读 · 0 评论 -
delphi 和vc、C++数据类型对应关系
delphi和vc基本数据类型对应关系 unsigned long -> dword unsigned char -> byte char -> char UINT -> dword 『Delphi和C++数据类型对照表』 Delphi 字长/值域 C++ ShortInt 8位有符号整型 signed char SmallInt 16位有符号整型 short LongInt 32位有符号整型 int Byte 8位无符号整型 unsigned char Word 16位无符号整型 unsigned sho原创 2011-04-07 21:52:00 · 5692 阅读 · 0 评论 -
c#调用C++ 写的DLL(带CALLback函数)
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Runtime.InteropServices;using原创 2011-06-10 16:50:00 · 4305 阅读 · 0 评论 -
正式学习VC++
今天正式开始学习VC++2005课程,希望不会太晚; 也希望各位朋友多多捧场;原创 2011-06-26 21:09:00 · 513 阅读 · 0 评论 -
VC 获得系统时间、程序运行时间
1.使用CTime类CString str; //获取系统时间 CTime tm; tm=CTime::GetCurrentTime(); str=tm.Format("现在时间是%Y年%m月%d日 %X"); MessageBox(str,NULL,MB_OK);2: 得到系统时间日期(使用GetLocalTime)SYSTEMTIME st;CString strDate,strTime;GetLocalTime(&st);strDate.Format("M----",st.wYear,st.wMon转载 2011-05-04 18:06:00 · 840 阅读 · 0 评论 -
VC获取网卡MAC
<br />//方法一<br /> <br />CString PrintMACaddress(unsigned char MACData[])<br />{<br />CString mac;<br />char MAC[40]={0};<br />sprintf(MAC,"XXXXXX", MACData[0], MACData[1], MACData[2], MACData[3], MACData[4], MACData[5]);<br />mac=MAC;<br />return mac;<br转载 2011-05-04 18:11:00 · 2679 阅读 · 0 评论 -
VC获得本地计算机名和IP地址
<br />CString m_IP;//IP地址临时变量<br /> //获得本地计算机名<br /> char PCnameBuffer[128];<br /> if(0==gethostname(PCnameBuffer,128))<br /> {<br /> m_PCname=PCnameBuffer;<br /> //获得本地IP地址<br /> struct hostent* pHost;<br /> int i;<br /> pHost=gethostbyname(PCnameBuf转载 2011-05-04 18:09:00 · 1567 阅读 · 0 评论 -
VC获取网卡流量
<br />BOOL CTSysWatch::GetNetAdapterFlux(LPNETADAPTER_FLUX pAdapterFlux, int nIndex )<br />{<br />// Declare and initialize variables<br />DWORD dwRetVal = 0;<br /> <br />// Make an initial call to GetIfTable to get the<br />// necessary size into the dwSi转载 2011-05-04 18:13:00 · 3265 阅读 · 0 评论 -
VS2005/DELPHI2007帮助中不能打开,提示“无法正常显示页面”
DELPHI2007帮助中目录能正常,但页面无法显示,“页面不能正常显示” “页面不能正常显示”等处理方法步骤:1)重新卸载/安装发现问题依旧;2)后来发现VS2005的帮助也一眼,才想可能是系统问题;后来隐约感觉好像有个东西被360给阻止了;3)上网搜索发现有人有同样的问题,操作如下:在运行中重新注册dll,Regsvr32 "C:Program FilesCommon FilesMicr原创 2011-07-02 16:48:40 · 996 阅读 · 0 评论 -
学习程序的3个要素
学习程序的3个要素(源于微软专家李建忠观点): 1)时间:包括编译时(compiled time)和运行时(run time)的特性; 2)地点:存储在哪? 堆上还是栈上,更具体来说就是地址;在不同地点有不同行为和生命周期; 如在栈上和在堆上是不一样的,在栈上内存是系统自动管理的,而在堆上是需要程序员来处理等 3)人物:写代码的程序员和写IDE环境的程序员;具体来说,就是当你在前台写一段代码时,后原创 2011-06-30 23:49:00 · 776 阅读 · 0 评论 -
事件过程概述
事件的机制包含3个步骤(过程): 1)事件的发布:你公告你会把哪些事情(状态)通知大家;即事件发布者公布有哪些事件接口;如你在煮饭时、洗衣服时、拖地板时或者休息时能把你的情况通知大家; 2)事件的订阅:大家希望知道你的哪些事情(状态);即事件接收者希望接收哪些事件;如A需要你煮饭时通知他,而B需要你洗衣服时通知他; 3)事件的执行:当大家收到你的通知时,所要处理的事情;即事件接收者收到事件时执行代原创 2011-07-01 00:51:00 · 1425 阅读 · 0 评论 -
const使用详解
作者:康建东关于C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,现将本人的一些体会总结如下,期望对大家有所帮助:一 const基础如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况: int b = 5转载 2011-09-15 12:55:19 · 579 阅读 · 0 评论 -
C# 中的委托和事件
来源:http://www.cnblogs.com/JimmyZhang/archive/2007/09/23/903360.htmlPDF 浏览:http://www.tracefact.net/Document/Delegates-and-Events-in-CSharp.pdf文中代码在VS2005下通过,由于VS2003(.Net Framework 1.1)不支持隐式的委托变量...转载 2012-03-28 22:03:25 · 504 阅读 · 0 评论