Windows函数错误处理 (转)
Windows函数错误处理 (转)[@more@] 当调用一个windows函数时,它首先要检验传递给它的各个参数的有效性,然后再设法执行任务.如果传递一个无效参数,或者由于某种原因无法执行这项操作,那么操作系统就会返回一个值,指明该函数在某种程度上运行失败了。 Windows函数常用的返回值类型: void BOOL:0,非0,TURE,FALSE HANDLE:HANDLE,NULL,INVALID_HANDLE_VALID) PVOID:NULL,PVOID LONG/Dword:具体函数而定 ... microsoft编译了一个所有可能的错误代码列表,并且为
Apache Developers'C Language Style Guide -- 最优代码风格(我认为) (转)
Apache Developers'C Language Style Guide -- 最优代码风格(我认为) (转)[@more@]apache Developers' C Language Style Guide Compiled by Paul Sutton Mailto:paul@awe.com">paul@awe.com. Based on a vote taken in November, 1996. Further refinements voted upon in July 1997. Introduction [This bit could state that code should be laid out to be clear to someone else familiar with Apache. Functions should be short and easily understood. Comments should be provided to explain the rationale for cod
VC++/MFC 教程6&7(英文) (转)
VC++/MFC 教程6&7(英文) (转)[@more@]Lesson 6: SDI and MDI Applications We are getting to some advanced stuff now. In this lesson I am not going to go in depth at all. I will just give you a flavor of the structure of a SDI (single document interface) and a MDI (multiple document interface) application. In the last lesson we will build a SDI application and you can see the nitty gritty there. The SDI application is typically used when you intend to work with only one data set at a time. For
VC++/MFC 教程4&5(英文) (转)
VC++/MFC 教程4&5(英文) (转)[@more@]Lesson 4: MFC Basics Are you ready to start programming? No you are not. You don't want me to teach you a stupid 'hello world' application, do you? If you want to make the most of Visual C++ you have to use microsoft Foundation Classes (MFC). These classes are great because they wrap all of those handles we talked about in the first lesson with easy to use classes. The most important to you right now is the class CWnd. This wraps the functions which needed
VC++/MFC 教程3(英文) (转)
VC++/MFC 教程3(英文) (转)[@more@]Lesson 3: Visual C++ ide and Workspaces windows programming is tricky stuff. Don't let anyone fool you. But microsoft has blessed us with their IDE called Developer's Studio. It will handle all the compiling and linking, provides help, fills in tons of code for you, and gives you that 'visual' designing environment to make cute little dialogs. There a few things you must learn to use to get anywhere. First and most importantly, USE THE ONLINE HELP. There are s
VC++/MFC 教程2(英文) (转)
VC++/MFC 教程2(英文) (转)[@more@]Lesson 2: C++ Essentials If you want to use microsoft Visual C++, it helps a ton if you really know C++. Everything is about classes. If you are used to plain C, you won't really see the big deal with classes until you use them for a while. Let's review what you need to know about classes to get started with VC++. A class is a structure for the most part. Let's work with an example instead of me just telling you rules. Let's make a class to represent a line. I
VC++/MFC 教程1(英文) (转)
VC++/MFC 教程1(英文) (转)[@more@]Lesson 1: Behind the Scenes with Handles and MessagesThough you think you want to dive right into the code, you really don't. windows programming is overwhelming at first. Let's take a quick look at how Windows works. The backbone of all of your programming will be responding to and sending messages. What are messages? Messages are simply a 32bit number designating some event. Example: You move the mouse, a message (defined as WM_MOUSEMOVE) is 'posted' to the act
杀入IT成功路 (转)
杀入IT成功路 (转)[@more@]作者:Mailto:紫云英 JasonCrazy@sina.com">紫云英 JasonCrazy@sina.com 多次看到有人向往做开发者,但无奈于没进大学或大学时学的不是计算机,觉得转行好累好难.那么我可以告诉你,没什么区别.真正的知识都是自学得来的. 好象有教育家在说学校应该是传授学习技能,而不是知识本身.这话一点不错,尤其是后半句. 别指望在名牌大学计算机系混几年出来就是编程高手.(也许这是肺话,不过我是发自肺腑地说的). 如果真想学到东西,也许不念大学,在家学习才是更好的选择.不用浪费大约1个学分200大洋的钱(现在读大学4年至
Borland C++ 5.02 IDE 中的 bug (转)
Borland C++ 5.02 IDE 中的 bug (转)[@more@]Borland C++ 5.02 ide 中的一个 bug from http://coneos.126.com DarkSpy在Borland C++新闻组看到关于Borland C++ 5.02 IDE中的一个bug。 这个bug将会让编译器产生出错信息“(1,1) Bad object file record in module xxx near module offset 0x........”。DarkSpy也试验了一下,确实是一个问题。 如果有Borland C++的fans的话,也不妨试验一下,具体步骤如下。 建立一个工程,目标程序为MS-DOS程序,工程名字就叫tm_terror, 然后,建立一个头文件:terror.h,里面写上代码:#ifndef te
改变 Win98 的 Shell (转)
改变 Win98 的 Shell (转)[@more@] 改变 win98 的 shell 如果你用过组件编程,你肯定熟悉 Regsvr32.exe.一般来说,注册/反注册部件都可以利用它完成.但是如果有众多的控件需要管理,每次都要在"运行"对话框敲入regsvr32 .....的命令很繁.其实留心一点,你肯定能找到通过Win95 的shell功能来对ocx,dll等文件建立关联,快速注册/反注册部件.解决方案: (1)启动regedit,打开HKEY_CLASSES_root主键,寻找.dll和.ocx(一般来说.dll文件已被管理,文件类型为dll file; .ocx可以自行添加);(2) 添加Shell子键,再加入类似Register和Unregist
调用API函数得到磁盘上剩余空间的值 (转)
调用API函数得到磁盘上剩余空间的值 (转)[@more@] 调用api函数得到磁盘上剩余空间的值 最直接的方法是调用API函数 GetDiskFreeSpace,函数声明如下: 声明:Declare Function GetDiskFreeSpace Lib "kernel32" Alias "GetDiskFreeSpaceA" (ByVal lprootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTtoalNumberOfClusters As Long) As Long使用:Private Sub Form_Load()'vb Man 2001'URL: http://goodvbman.yeah.NET'E-Mail: coolde@21
禁止使用 Alt+F4 关闭窗口 (转)
禁止使用 Alt+F4 关闭窗口 (转)[@more@] 禁止使用 Alt+F4 关闭窗口 声明: 'vb man 2001'URL: http://goodvbman.yeah.NET'E-Mail: coolde@21cn.comPrivate Declare Function GetSystemMenu Lib "user32" Alias "GetSystemMenu" (ByVal hwnd As Long, ByVal bRevert As Long) As LongPrivate Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As LongPrivate Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Lo
动态移动控件 (转)
动态移动控件 (转)[@more@]Private Declare Function SendMessage Lib "user32" Alias _"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _ByVal wParam As Long, lParam As Any) As LongConst WM_SYSCOMMAND = &H112Const SC_MOVE = &HF012 '---- 在 窗 体 中 添 加 一 命 令 按 钮Command1, 双 击 写 代 码 如 下: Private Sub Command1_Click()Dim ren as integerren = SendMessage(Command1.hwnd, WM_SYSCOMMAND, SC_MOVE, 0)End Sub '---- 在 窗 体 中 添 加 命 令 按 钮Command2, 双 击 写 如 下 代 码: Pr
动态改变屏幕设置 (转)
动态改变屏幕设置 (转)[@more@] msnavigation--> 动态改变屏幕设置 我们经常看到许多 Win95 的应用程序(尤其是游戏)在运行它的时候改变屏幕的设置,运行完后恢复,在 vb 中,我们可以用以下方法实现: 文中的下划线(_)为接上一行。 定义'Vb man 2001'URL: http://goodvbman.yeah.NET 'E-Mail: coolde@21cn.comPrivate Declare Function lstrcpy _Lib "kernel32" Alias "lstrcpyA" _(lpString1 As Any, lpString2 As Any) _As LongConst CCHDEVICENAME = 32Const CCHFORMNAME = 32Private Type DEVMODEdmDeviceName
避免按 [ENTER] 键产生的“嘀”声 (转)
避免按 [ENTER] 键产生的“嘀”声 (转)[@more@] 避免按 [ENTER] 键产生的“嘀”声 当你在文本框(Text Box)中输入完信息然后按 [Enter] 键,你就会听到计算机喇叭发出难听的“嘀”声。你可以通过以下方法避免此声:假设文本框为 Text1,在 KeyPress 事件中输入以下代码: Private Sub Text1_KeyPress(KeyAscii As Integer)'vb man 2001'URL: http://goodvbman.yeah.NET 'E-Mail: coolde@21cn.comIf KeyAscii = Asc(vbCr) ThenKeyAscii = 0'您要执行的程序内容。End IfEnd Sub 当你运行程序后,按 [Enter] 键就再也不会听
在VC中,让动态创建的ActiveX控件响应Windows消息。 (转)
在VC中,让动态创建的ActiveX控件响应Windows消息。 (转)[@more@]当我们通过CWnd::CreateControl()动态创建ActiveX控件时,windows消息并不会被发送给我们的由CWnd派生得控件类。例如,即使我们为WM_KILLFOCUS消息创建了句柄,这个句柄也是不会被调用的。(不信你试试 :)) 引起这个问题的原因时,CWnd::CreateControl()并不会使我控件的HWND子类化。 知道了原因,要解决问题就不难了。我们只要在控件创建之后使它子类化就行了。通过一下步骤可以实现: 1.当然是添加控件啦,先生成控件的C++包容类。 2.再要创建控件的类中声明成员变
More Effective C++ 条款19 (转)
More Effective C++ 条款19 (转)[@more@]条款19:理解临时对象的来源XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" /> 当程序员之间进行交谈时,他们经常把仅仅需要一小段时间的变量称为临时变量。例如在下面这段swap(交换)例程里: template<class T> void swap(T& object1, T& object2) { T temp = object1; object1 = object2; object2 = temp; } 通常把temp叫做临时变量。不过就C++而言,temp跟本不是临时变量,它只是一个函数的局部对象。 在C++中真正
汇编语言的未来展望 (转)
汇编语言的未来展望 (转)[@more@]汇编语言的未来展望 本人曾在ASM专家门诊上发表过一个“win98出于速度考虑,系采用asm开发”的贴子。发布后立即有网友提出质疑;另因本人也正在苦练ASM,亦对汇编有一些新的体会,故一并回答如下: 此消息是我在一本著名电脑杂志上看到,因年代久远,现已记不清了。但因本人当时正在大学苦练c,想当然认为只有C+ASM才能写OS,更可况WIN9X这么大的软件工程?故深感震动,也让我对ASM有了新认识。您若仔细看看MASM 6。X,就会发现一些类似pascal的语法已进入ASM的世界了,本人个人认为,引进.i
企业级应用软件平台-国产办公软件的出路 (转)
企业级应用软件平台-国产办公软件的出路 (转)[@more@] 企业级应用是今后软件的主要利润来源,像计算机硬件需要一个统一的操作系统平台一样,企业级应用也需要一个统一的企业级应用软件平台,企业级应用软件平台必将成为未来的杀手软件,而国产办公软件可以朝向这方面发展。 很多企业级应用的基础其实都是依据企业的业务逻辑再对办公软件功能的组合扩展而成,比如说ERP如果脱离其背后的数据流、企业逻辑,就其呈现形式而论都是文本、数据表格、统计图形的组合,这些都是办公软件的长项。 建立在办公软件基础上开发和部署
MSDN 访谈录之C#编程一 (转)
MSDN 访谈录之C#编程一 (转)[@more@]MSDN 访谈录(MSDN Show) C#编程XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" /> C#是一种令人耳目一新且为之一振的编程语言,它设计给C++程序员带来快速的开发能力,而又不牺牲C和 C++所特有的功能和控制。 在今天的这一期里,我们将要和Anders Hejlsberg交谈,他是微软一位资深的工程师,一直帮助设计、开发和实现该语言,并发挥其在未来.NET平台中的作用。我们还要和Jeffrey Richter(著名的编程作家和咨询专家)交谈,他从事C#的工作已经一年有余了。