点滴记录软件开发历程
PerfectToday
不管做什么事情,都应该将心态回归于零:抱着学习的态度,将每一次任务视为一个新的开始一段新的体验一扇通往成功的智慧之门.
展开
-
OPC服务器在WindowsXP2下的简单DCOM配置
OPC服务器在WindowsXP2下的简单DCOM配置第一步: 携带国际OPC基金会提供的OPC Core Components 2.00 SDK 2.30.msi文件,找到你将要配置的计算机,并保证你配置的计算机系统干净,即原始XP环境、无DCOM配置前科。第二步: 打开计算机用Administrator用户登陆、并保证将来计算机应用时也以该用户提供服务。安装上述.msi文件,并注册服务 OPC原创 2008-11-11 13:02:00 · 2173 阅读 · 0 评论 -
关于补充XP2、XP3进行OPC通信时的DCOM配置要素
关于补充XP2、XP3进行OPC通信时的DCOM配置要素经验一、客户端连接目标机器的OPC服务器时,客户端(FactorySoft OPC Client)提示:EnumClassesOfCategories failed:拒绝访问解决办法:在用户权限(OPCServer计算机)上,找到 控制面板—管理工具—本地安全策略—安全选项—网络访问:本地账户的共享和安全模式 改为:经典-本原创 2009-10-31 22:50:00 · 5808 阅读 · 1 评论 -
从项目点滴看企业管理
从项目点滴看企业管理古人云“见微知著”,大意是说通过小小的细节便可以知道宏观层面的运行和发展趋势。 同样的道理,通过我们周边的一些工作和生活细节也可以看出一个公司管理的成熟度。 前文所述,曾经带过一个项目,稳定开发人员十人左右,协同开发人员十几个人,加上技术总监、公司副总,差不多将近 30 个人了,已经占了公司技术团队的半壁江山了。老实说已经不能算微了,在项目管理中遭遇到的种种事转载 2009-11-10 09:03:00 · 518 阅读 · 0 评论 -
没有沟通的代价
没有沟通的代价 本以为自己的任务完成后,就无须再去。可是现场验收的不顺,导致单位紧急安排我飞到现场。 在路上,我一直在想,我去能做什么呢?我负责的模块,应该没有啥问题。至于另一通信模块的不稳定,与我有何关系呢?到了现场,才发现问题的严峻。因为我们设备的不稳定,使得甲方对我们意见很大。 主管测试我们设备的人员,一直向上面汇报我们设备的种种弊病。 很是纳闷。为何和测试转载 2009-11-10 09:17:00 · 525 阅读 · 0 评论 -
指针删除后习惯性使用 = NULL; 语句
一、上学时我的VC++老师就时常告诉我们用完的指针尽量赋值为:NULL,工作中发现:这的确是个好习惯~!原创 2009-11-17 08:43:00 · 610 阅读 · 0 评论 -
从今天开始编程时的比较语句统一写为 FALSE == 变量 或 TRUE == 变量 形式
例一:if( NULL == m_file ){ MessageBox(NULL, "文件创建失败", NULL, NULL); return 0;}原创 2009-11-17 14:34:00 · 649 阅读 · 0 评论 -
回顾一下如何彻底改变VC++6.0工作区的名称
::实际工作中经常遇到在一个源工程的基础上,创建多层次多系列的软件出来,这样你可能继承于同一个源工程,为了管理的清晰性,我总是手动改变工作区的名字,当然这也有一定的风险,请注意备份!第一步:记事本形式打开.dsp文件,假如你原来的工作区名字为:“DCMS_SG”,查找该文件中所有的“DCMS_SG”替换为你新的命名(OPC Datas Collector),注意:如果是类的头文件或.cp原创 2009-11-19 13:03:00 · 1936 阅读 · 0 评论 -
VC++6.0服务编程时第一次了解关于 Window Station(窗口站)和 Desktop(桌面)的东东
窗口站:一个窗口站(Window Station)包含一个剪贴板对象、一个原子表对象、一个或多个桌面对象。每一个窗口站都是一个安全对象,当一个窗口站被创建时,窗口站和调用它的进程相关联,并且被分配给当前的调用。在交互式窗口站中,只有WinSta0能够呈现一个用户界面或接收用户的输入动作,它常常被分配给一个已登陆的交互式用户,还包括键盘、鼠标、显示器。其它的非交互式窗口站,不能呈现用户界面或接收原创 2009-11-18 14:12:00 · 1441 阅读 · 0 评论 -
VC++6.0服务程序之实践应用总结
一、服务程序与对话框程序、文档/视图程序、动态链接库程序一样吗?网络上搜集的资料如下:一、什么是服务程序,它的特性是什么?在NT/2000中,服务是一类受到操作系统优待的程序。一个服务首先是一个Win32可执行程序,如果要写一个功能完备且强大的服务,需要熟悉动态连接库(Dlls)、结构异常处理、内存映射文件、虚拟内存、设备I/O、线程及其同步、Unicode以及其他的由WinAPI函数提原创 2009-11-18 09:30:00 · 1699 阅读 · 1 评论 -
VS2010中VC++十年后能否像今日的VS6中的VC++6.0一样经典,我将拭目以待
2009年11月24日,我下载了VS2010的试用版 beta2一、今日的VS2010a、闪屏b、首次启动进度条 c、启动后的界面: d、创建VC++工程时的界面:二、98年6月份发布的VC++6.0,至今我已经使用了5年的VC++6.0a、闪屏b、启动后的画面,上面的汉字是我在开发OPC数据记录器时留下的,正常情况下没有这些文字c、创建原创 2009-11-25 10:27:00 · 2713 阅读 · 4 评论 -
代码编写中关于通用定义的一些个性规约
一、头文件部分1、如果该头文件应用于应用程序,则常规使用以下定义#ifndef _APP_DIAGNOSIS_CMD_H_#define _APP_DIAGNOSIS_CMD_H_//......//......#endif2、如果该头文件隶属于自己的私人动态库, #ifndef _DLL_PROC_COMM_H_#define _DLL_PROC_COMM_H_//......//...原创 2009-11-27 13:54:00 · 632 阅读 · 0 评论 -
编程时,一段时间之后函数调用失败,你的动态库或应用程序一定有时间限制!~
2009年12月03日一天,一直在折腾一件事情,因为socket通信时,一段时间之后,send发送数据总是返回10053错误,弄得非常惨!~关键是初学socket通信,内部逻辑不是很了解~问题大概是这样的:服务器端接收来自客户端A和客户端B的消息,当客户端B向服务器发送某一特定消息(Msg1)时,服务器就主动向客户端A回传消息Msg2,可客户端B第一次发送Msg1时,服务器正常处理!大约1分钟原创 2009-12-04 09:12:00 · 900 阅读 · 0 评论 -
耐用的break、不常使用的continue!~
::一、break 跳出当层循环,像for,do...while,注意:if...else是条件语句原创 2009-12-03 07:50:00 · 524 阅读 · 0 评论 -
多线程之同步问题小结
线程同步多个线程需要访问同一个资源时,你应该考虑同步问题;例如:银行系统中,可能使用多个线程对数据库进行操作,如:存储、更新、查询线程同时访问数据库,极可能出现:查询到的数据是未完全更新的数据。还有就是火车售票系统,多窗口售票可以认为是多个线程,多窗口共享总票资源(tickets),此时如果不对共享资源进行同步处理,就会出现:卖第0张票的情况!long tickets = 100;原创 2010-03-08 15:42:00 · 835 阅读 · 0 评论 -
逐步建立自己独立的代码信息导航系统
逐步建立自己独立的代码信息导航系统第一步:错误代码范围DWORD 80000到89999其中80000到80999为通用错误代码信息80000:代码正确执行80001:字符串为空,主要系使用strcmp(x, "")或strlen(x)81000到82999为DLL专用错误代码信息83000到84999为EXE专用错误代码信息85999为公司级EXE主控制程序错误代码信原创 2009-09-17 09:23:00 · 806 阅读 · 0 评论 -
价格弹性的计算()
假如某企业的需求曲线已知为: Q= 30-5P,那么dQ / dP = -5详细解释:∵ Q = 30 – 5P dQ = d(30 – 5P) //对等式两边同时取微分得到 dQ = 0 – 5dP //【常数的导数或微积分等于零】 dQ = -5dP //【这是微积分的写法】,两边同除以dP∴ dQ / dP = –原创 2012-03-31 09:55:53 · 3328 阅读 · 0 评论 -
不可估量的是对行业留下的创新设计、让你无愧于工程师这个称号
不可估量的是对行业留下的创新设计、让你无愧于工程师这个称号为了更清楚的看清自己,拿一个成熟工业领域用设计汽车的例子来类比软件设计与开发。 技术人员的学习与实践有三个层次 第一层次 了解专业知识与原理 作为一名汽车设计师,在正式上岗之前,首先要了解汽车的各种原理。如引擎、燃料、悬挂,制动、碟鼓,ABS,风阻,油耗,安全防撞等知识,设计汽车目标并不仅是制造一个漂亮的外壳或者让轮子转起来。转载 2009-10-29 21:29:00 · 799 阅读 · 0 评论 -
十年职业流水帐
十年职业流水帐(一) 99年,20岁,南京某大学毕业(读书早一年,小学又跳了一年),在上海找了一份工作,国内一知名软件公司,那时候学计算机的工作好找,工资两千多一点,包午餐包住。第一份工作,战战兢兢,生怕做错事。 后来发现,那些工作很多年的同事,不见得比自己强,可拿比自己高很多的薪水。于是愤青般忿忿不平。这是我职业生涯第一个错误的想法。因为我们只是看到别人弱的地方,却没看到别人强的地方,转载 2009-11-04 15:05:00 · 568 阅读 · 0 评论 -
使用Windows的若干小常识
1、共享冲突 源文件或目标文件可能正在使用解决办法:进入DOS状态,使用del命令 + 要删除文件的全路径2、禁止Windows向开始-我的文档添加最近打开的文档解决办法:2.1、开始-运行 gpedit.msc 2.2、找到 用户配置 - 管理模块 - 任务栏和[开始]菜单 - 不要保留最近打开文档的记录,并在其属性中选中 启用3、设置Windows2000开机密码原创 2008-11-13 17:06:00 · 1097 阅读 · 0 评论 -
VC6.0如何创建一个基本的Win32 DLL工程
第一步: 使用VC6.0工程向导 Win32 Dynamic-Link Library 创建Win32s1工程,并在向导第一步选择 An empty DLL project第二步: 在FileView中分别创建 dll1.h和dll1.cpp①、在dll1.h中定义#ifndef _DLL_BASICUI_H_#define _DLL_BASICUI_H_ //告诉编译器只原创 2008-11-21 12:07:00 · 4423 阅读 · 1 评论 -
DLL中如何应用函数指针与主程序交互
虽然在DLL中定义指向主程序的函数指针,看似程序逻辑有些混乱,但工程实际应用中有时却得这么干,因此简单总结一下,函数指针在开发中的应用。第一步: 创建一般的动态库工程Win32s1第二步: 在动态库.h文件中,自定义函数指针类型,声明导出函数注:导出函数应用到外部主程序的相关计算与结果typedef float (*outFun)(int, int, int); //函数指针类型// typ原创 2008-11-23 17:04:00 · 2695 阅读 · 1 评论 -
如何解决MS串口通信控件MSCOMM32.OCX "建立空文档失败" 的问题?
在开发Modbus转发器时应用到MSCOMM32.OCX控件,但在未安装VC开发环境的机器上,总会弹出"建立空文档失败"的情况,所幸的是软件的使用人员是自己公司的,但久而久之,他们感觉非常不便,于是我在网上找了好多好多关于”建立空文档失败”的分析,以及在论坛上询问了好多好多次解决办法,但最终还是未能解决问题,现将如今的解决办法与大家分享,该方法已在Win2000及WinXP机器上测试。第一步: 找原创 2008-11-24 10:57:00 · 2483 阅读 · 0 评论 -
MFC开发COM控件(1) ODL
// COMs8MFCDual.odl : type library source for ActiveX Control project.// 控件的类型库// This file will be processed by the Make Type Library (mktyplib) tool to// produce the type library (COMs8MFCDual.tlb原创 2008-12-10 16:57:00 · 2217 阅读 · 0 评论 -
How to obtain access to an ActiveX control from its property page 如何从一个控件的属性页中获取对该控件的访问?
How to obtain access to an ActiveX control from its property page如何从一个控件的属性页中获取对该控件的访问?This article was previously published under Q205670这篇文章的发布编号为 Q205670Note Microsoft Visual C++ .NET (2002) an翻译 2008-12-17 13:23:00 · 953 阅读 · 0 评论 -
指向指针的指针(**)做为参数时,内存分配问题探索
主 题: 一个函数要求OPCSERVERSTATUS **类型的参数,我定义了一个View类的 急呀!!!内存泄漏!! 作 者: GOTOVC (书生)所属论坛: Visual C++论坛本帖分数: 0回复次数: 18发表时间: 2008-12-24 9:37:04正文内容:OPCSERVERSTATUS * OPCServerStatus; 使用时,我直接bOPCSt原创 2008-12-24 13:59:00 · 1061 阅读 · 0 评论 -
OPC连通性配置说明文档-仅供参考-该文档经一位不知道什么是OPC的工程师,测试10分钟搞定
OPC连通性配置说明文档一、基本配置准备处于同一网段的两台PC机,这两台机器应能够PING通,关闭防火墙软件。二、服务器端配置(XP系统)2.1、找到《北京优化佳测试程序/客户端/OPC SDK/》下的OPC Core Components 2.00 SDK 2.30.msi,双击运行默认安装即可。2.2、点击开始---运行---输入DCOMCNFG.EXE,在弹出的组件服务对原创 2009-04-30 16:26:00 · 1723 阅读 · 0 评论 -
收藏的网址
ftp://ftp.microsoft.com/原创 2009-05-07 16:08:00 · 471 阅读 · 0 评论 -
连接1.0服务器的SOPCClient.dll 数据回调模块要点
SOPCClient.dll 开发连接1.0服务器数据回调模块要点 第一步:得到指向 IDataObject 接口的指针可以用这个接口在客户端和服务器之间建立一个连接。我们可以在程序中创建一个由 IAdviseSink 接口派生的类CAdviseSink ,并创建一个实例;指向 IDataObject 接口的指针临时保存在CAdviseSink 类的 m_pDataObject 成原创 2009-05-08 14:55:00 · 829 阅读 · 0 评论 -
CMainFrame::OnCreate 中开线程,线程函数中需要访问CMainFrame类的变量,引起的致命问题
CMainFrame::OnCreate 中开线程,线程函数中需要访问CMainFrame类的变量,引起的致命问题(花费时间:20090727-20090729)问题简述 由于在VS6.0单文档程序中,使用了MS的MSComm.OCX控件,因此程序无法DEBUG运行,鉴于对串口控件及串口编程的不熟悉性,对程序中的多个应用进行了质疑和测试,因此只能Release测试问题所在,后经提原创 2009-07-29 08:42:00 · 1946 阅读 · 0 评论 -
VS6.0 for MSComm.OCX控件基础常识
GetCommEvent()1: 发送数据完成2: 接收数据完成3: CTS信号发生变化 对于PC而言,CTS信号是个只读的信息,对COM外接设备来说,它是个只写的东西;CTS/RTS握手是为了更安全的保证串口事件 CTS/RTS都是采用硬件中断的,这些事件可以直接获取,而不必等待前一事件的完成另外,在PCI卡式并口转RS485口或RSS232口转RS485时会遇到此事件原创 2009-07-30 14:12:00 · 749 阅读 · 0 评论 -
Windows程序员如何转向Linux开发应用?
Windows程序员如何转向Linux开发应用?这是一封发到邮箱里面的邮件,感觉有点代表性,这里做个统一回答,一家之言哈,欢迎拍砖。原文如下:我从csdn学习大本营得到您的信息。不好意思打搅您。我现在用c++在linux下开发大型应用程序。我想请教是否值得深入学习linux kernel。我没有特别多的时间。另外我有多年Windows下开发应用程序的经验。 我的回答:转载 2009-09-27 09:43:00 · 1023 阅读 · 0 评论 -
做什么样的软件才能赚钱?学什么样的知识才能赚钱?
做什么样的软件才能赚钱?学什么样的知识才能赚钱?2009-10-13 10:13 这是发在我的邮箱里面的一封信,这里做个统一回答。一家之言,欢迎拍砖哈。原文如下:肖老师: 你好。 我是一名09界刚毕业工作不久的java菜鸟级程序员。本人对java水平可以混口饭了,现在可以在工作中开发一般的小项目,都是B/S的。 本人基础很烂,基本上:算法 、数据结构转载 2009-10-15 09:42:00 · 2588 阅读 · 2 评论 -
我的十年总结——送给刚毕业的年轻朋友们
我的十年总结——送给刚毕业的年轻朋友们昨天在csdn上看到一篇“十年总结”的文章,颇受感动!不为作者光鲜的履历感动,感动的是他为80后、90后提供了一顿精神大餐,大家深受鼓舞。想想如今的我,已过而立之年,远谈不上成功,但在广州摸爬滚打近十年,也总结了些许成功的经验,加之我的职业是教书育人,所以还是想和大家分享一下我的经历和感受,希望对刚出校门的80后、90后有所帮助。 我的经历并不算光鲜,转载 2009-10-19 10:50:00 · 798 阅读 · 0 评论 -
磁盘驱动器卷标名称
//Get Window Directory TCHAR m_syspath[MAX_PATH];GetWindowsDirectory(m_syspath,MAX_PATH); TCHAR temp[MAX_PATH]; memset(temp,0,MAX_PATH); lstrcpy(temp,m_syspath); CString sysDir原创 2015-09-30 10:14:22 · 3516 阅读 · 0 评论