自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

转载 程序员的十层楼——周伟明

自西方文艺复兴以来,中国在自然科学方面落后西方很多,软件领域也不例外。当然现在中国的许多程序员们对此可能有许多不同的意见,有些人认为中国的程序员水平远落后于西方,有些则认为中国的程序员个人能力并不比西方的程序员差,只是整个软件产业落后而已。    那么,到底中国的程序员水平比西方程序员水平差,还是中国有许多优秀的程序员达到或超过了西方程序员同等水平呢?要解决这个问题,必须先知道程序员有多少种技术层级,每个层级需要什么样的技术水平,然后再比较中国和西方在各个技术层级的人数,就可以知道到底有没有差距,差距有多大

2011-05-09 20:49:00 2628 1

转载 vb.net中的自定义事件

'VB.net 自定义事件使用方法'1.先定义包含事件的类(如下)Public Class TestEvent    Public Event MyEvent(ByVal s As String)     '自定义事件    Public Sub StartEvent(ByVal value As String) '触发事件函数        RaiseEvent MyEvent(value)          '触发事件    End SubEnd Class'2.在使用事件的类中添加如下代码     

2010-12-28 14:25:00 10505

转载 .NET中的Timer

<br /><br /> .NET 提供了三种Timer:<br />基于服务的Timer   System.Timers.Timer<br />基于线程的Timer   System.Threading.Timer <br />基于窗体的Timer   System.Windows.Forms.Timer<br />     1、System.Threading.Timer,希望在另一个线程上定时执行后台任务时,这个定时器是最好的定时器。<br />     2、System.Windows.Form

2010-12-13 16:49:00 1177

转载 一个.NET委托的入门例子

<br />有许多人问的,.Net中的委托以及事件处理。我拿简单的例子说明一下,是现实中的例子:<br /><br />比如说一个公司(场景),你是老板,手下有两个员工,小张和小王。<br /><br />你命令小王,如果小张玩游戏,则小王扣去小张500元钱。<br /><br />这就是现实中的委托。<br /><br /><br />实际上,在写程序中,程序员就是老板,小张和小王就是两个对象。小张玩游戏是一个方法,小张还有一个游戏事件,他玩游戏激发这个事件。而小王就是事件处理对象,他负责把小张的钱扣除5

2010-12-13 16:32:00 788

原创 多个SQL server实例

<br />同一台电脑上可以建立多个SQL server实例,每个实例上可以建立多个独立的数据库,用户等。互不干扰。<br /> <br />以下是转自别人的答疑:<br /> <br /> <br />多个   SQL   Server   实例 <br />Microsoft SQL Server 2000   支持在同一台计算机上同时运行多个   SQL   Server   数据库引擎实例。每个   SQL   Server   数据库引擎实例各有一套不为其它实例共享的系统及用户数据库。应用程序连接

2010-12-01 15:38:00 13458

转载 SQL Server 2005 不允许远程连接解决方法

SQL Server 2005 不允许远程连接解决方法 做课程设计时,很多学生都遇到这个问题。把解决方法写在这儿,供参考。 刚刚安装的数据库系统,按照默认安装的话,很可能在进行远程连接时报错,通常是错误:"在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) "搜MSDN,上面有一片机器翻译的文章,是在让人难以明白,

2010-12-01 15:10:00 540

转载 函数调用的栈管理

<br />当调用(call)一个函数时,主调函数将声明中的参数表以逆序压栈,然后将当前的代码执行指针(eip)压栈,跳转到被调函数的入口点。<br />当调用(call)一个函数时,主调函数将声明中的参数表以逆序压栈,然后将当前的代码执行指针(eip)压栈,跳转到被调函数的入口点。<br />       进入被调函数时,函数将esp减去相应字节数获取局部变量存储空间。被调函数返回(ret)时,将esp加上相应字节数,归还栈空间,弹出主调函数压在栈中的代码执行指针(eip),跳回主调函数。再由主调函数

2010-11-12 09:41:00 638

转载 AfxOleInit()和::CoInitialize(NULL)区别(转载)

<br /><br />OLE是建立在COM之上的技术,层次比COM要高。AfxOleInit()调用的是OleInitialize(),而OleInitialize()除了调用CoInitializeEx()来初始化COM库外,还进行一些其它的操作,这些操作对OLE应用来说是必须的,这些OLE应用包括:   <br />  (1)Clipboard;   <br />  (2)Drag   and   drop;   <br />  (3)Object   linking   and   embeddin

2010-11-10 10:04:00 1212 1

转载 CoInitialize()与COM

Coinitialize  CoInitialize是 Windows提供的API函数,用来告诉 Windows以单线程的方式创建com对象。应用程序调用com库函数(除CoGetMalloc和内存分配函数)之前必须初始化com库。  返回值S_OK : 该线程中COM库初始化成功S_FALSE 该线程中COM库已经被初始化 CoInitialize () 标明以单线程方式创建。  使用 CoInitialize 创建可以使对象直接与线程连接,得到最高的性能。  CoInitialize并不装载COM 库,

2010-11-10 09:55:00 16166 1

原创 静态函数里不能访问成员变量

<br />因为静态是针对类的,而成员变量为对象所有。<br /> <br />如果要访问的话:<br /> <br />一:可以把要用的参数通过void * argslist 传递进线程函数<br />二:设置一个静态变量,静态变量可以指向你要调用对象的,然后在线程函数中直接调用<br />三:可以把类成员变量设置成静态的,这样就可以在线程函数中直接调用<br />看看你的代码int val=a是不可能调用的因为没有this指针,你可以采用我的第一个方案,传递进一个this指针,表明a是属于哪个对象的<b

2010-09-30 14:57:00 2149

原创 this指针问题

<br />我将一个按钮的响应函数放到了View类里边,如下:<br /><br /><br /><br />void CBitmapZoomApp::OnBmpZoom()<br />{<br />CDialogZoom dlgZoom;<br /> <br />if (IDOK == dlgZoom.DoModal())<br />{<br />dibCDib.Zoom(dlgZoom.m_fXZoom, dlgZoom.m_fYZoom);<br />CMainFrame* pMainFrame =

2010-09-25 14:03:00 485

原创 几个宏函数

<br /><br />#define Max(a,b)  (((a) > (b)) ? (a) : (b))<br />#define Min(a,b)  (((a) < (b)) ? (a) : (b)) <br />#define SAFE_DELETE_ARRAY(p)  { if(p) { delete[] (p);   (p)=NULL; } }<br />#defineSAFE_DELETE(p){ if(p) { delete (p);     (p)=NULL; } }

2010-09-25 10:30:00 433

原创 C++中获得在App或者Doc中获得当前View的指针

<br />MDI程序中<br /> <br /><br />CMainFrame* pMainFrame = (CMainFrame*)GetMainWnd(); <br />CBitmapZoomView* pActiveView = (CBitmapZoomView*)pMainFrame->MDIGetActive();<br /> 

2010-09-21 08:23:00 575

原创 CFileDialog

<br />CFileDialog 既用于打开文件也用于保存文件,由第一个参数决定,TRUE就是打开。要注意,这样构造出来的CFileDialog的内存地址是0x00000,实际上是没有构造出来,但是下面的程序能通过并正确执行,而如果用GetFolderPath就会警告。<br /> <br /><br /> CFileDialog fSaveDlg(FALSE,NULL,szFileName, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,NULL,this,NULL);<

2010-09-16 21:45:00 472

原创 弹出选择文件夹的窗口(用于文件存储)

<br />CHAR* cFolderPathT = new CHAR[256];<br /> memset(cFolderPathT, 0, 256);<br />    <br /> BROWSEINFO bRows; <br /> LPITEMIDLIST pIDL = NULL; <br /> bRows.hwndOwner = NULL; <br /> bRows.pidlRoot = NULL; <br /> bRows.pszDisplayName = cFolderPathT;<br /> 

2010-09-16 13:31:00 540

原创 VC中如何用OCX

通过添加类的形式完成,只不过选择MFC Class From ActiveX ControlADD CLASS FROM TYPE LIBRARY选择*.ocx

2010-09-15 13:44:00 495

原创 删除多余进程(同类进程只留一个)

<br />VOID CMeDViewerDlg::KillSpareProcess(char* strProcessName)<br />{<br /> DWORD dwThisProcessID = GetCurrentProcessId(); //获取当前进程ID<br /> DWORD dwProcessID = 0;<br /> HANDLE hProcessHandle = NULL;<br /> DWORD dwProcessIDes[1024], cbNeeded, cbMNeeded;<b

2010-09-14 11:21:00 946

转载 获取当前进程ID

GetCurrentProcessId();或者#include#include#include#includeint main(){/*获得当前进程的进程ID和其父进程ID*/printf("The PID of this process is %d/n",getpid());    /*getpid函数作用是获得当前进程的PID*/printf("The PPID of this process is %d/n",getppid()); /*getppid函数作用是获得当前进程的父进程PPID*/}

2010-09-14 11:17:00 25287

转载 各种字符串之间的转换

HomeLibraryLearnDownloadsSupportCommunitySign in |中国(简体中文) |PreferencesMSDN LibraryDevelopment Tools and LanguagesVisual Studio 2010Visual StudioVisual Studio LanguagesVisual C++Visual C++ Programming MethodologiesCharacter Sets in C++How to: Convert Betwe

2010-09-13 22:38:00 950

转载 获得进程ID,关闭进程。

//// FindProcess// 这个函数唯一的参数是你指定的进程名,如:你的目标进程// 是 "Notepad.exe",返回值是该进程的ID,失败返回0//DWORD FindProcess(char *strProcessName){    DWORD aProcesses[1024], cbNeeded, cbMNeeded;    HMODULE hMods[1024];    HANDLE hProcess;    char szProcessName[MAX_PATH];    if (

2010-09-13 21:58:00 3709

原创 VC中include上级目录。

#include "../MeDUtl/CommonUse.h"   上级目录。#include "./CommonUse.h"   当前目录

2010-09-09 19:43:00 5578

原创 Oracle 11g 问题综合

<br />1、Oracle 11g 默认用户激活<br />http://hi.baidu.com/kelongxhu/blog/item/7af85ecb3a5561f452664fde.html<br /> <br />2、获得数据库SID<br />在CMD下进入SQLPLUS方法如下:sqlplus /nologconn / as sysdba-- 查询数据库的SIDselect instance_name from v$instace;这样就可以得到数据库的SID了<br /

2010-06-09 22:59:00 1136

转载 如何使用CArray

MFC的数组类支持的数组类似于常规数组,可以存放任何数据类型。常规数组在使用前必须将其定义成能够容纳所有可能需要的元素,即先确定大小,而MFC数组类创建的对象可以根据需要动态地增大或减小,数组的起始下标是0,而上限可以是固定的,也可以随着元素的增加而增加,数组在内存中的地址仍然是连续分配的。  MFC定义了数组模板类CArray,并针对各种常用变量类型定义了CByteArray,CArray,C

2010-05-16 15:59:00 2172

转载 Oracle 连接远程数据库

公司使用linux开发机进行程序开发时,由于开发用Oracle数据库是由日方提供,所以经常使用sqlplus连接到远程数据库上进行开发,例如:sqlplus  username/password@servicename于是想,用我的两台电脑双机互联试一试,也玩个“远程连接”。实验如下:首先在我的台式机上安装了Oracle9i的数据库管理系统,并建立了一个数据库实例:xy然后为该实例

2010-05-16 15:01:00 7727

转载 Oracle 11g SECUREFILES

Oracle 数据库 11g面向 DBA 和开发人员的重要新特性:SecureFiles:1、SecureFiles:新 LOB 了解如何使用新一代 LOB:SeureFiles。SecureFiles 集外部文件和数据库 LOB 方法的优点于一身,可以存储非结构化数据,允许加密、压缩、重复消除等等。 数据库驻留 BLOBS 或 OS 文件 您在 Oracle 数据库中存储什么

2010-05-06 09:51:00 1453

原创 毕业设计中用到的一些

1、如何设置全局变量/函数(1)定义一个Global.h,内包含 #pragma once#include "OraEnv.h"extern OraEnv Glob_OraEnv;      //全局变量#define  SQL_MAXLEN 1024       //全局宏定义extern double GetTime();          //全局函数 (2)定义Gl

2010-05-05 15:44:00 411

原创 毕业设计中碰到的一些(简单常识类)

1、UpdateData(TRUE) 和 UpdateData(FALSE)的区别。     UpdateData(TRUE)控健变化通知程序更新内容。     UpdateData(FALSE)内容变化更新控健。 2、数组是在栈内分配的,通常VC默认的栈是1M,如果有数组过大,超过了这个数,就会导致编译出错,所以应该用动态的new。 3、在VC Debug版本里,栈中分配的值都会

2010-05-05 15:28:00 476

转载 VC调试总结 zz http://www.cppblog.com/kevinlynx/archive/2008/04/24/47998.html 博客。

  很早前就想写点总结将编程中遇到的各种错误刨根挖底地罗列出来。但是因为这些错误(VC中开调试器遇到的各种错误对话框)都是随机性的,真正想总结的时候又不想不起来有哪些错误。恰好最近运气比较背,各种错误都被我遇遍了,于是恰好有机会做个总结。  这里所说的VC下的错误对话框时指在VC中开调试器运行程序时,IDE弹出的对话框。 1.不是错误的错误:断言 .将断言视为错误其实有点可

2010-05-05 14:25:00 1082

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除