长期从事Windows和linux应用程序开发,系统开发,驱动程序开发以及基于.net平台的软件开发;擅长面向对象程序设计、数据库设计、应用与开发;
感谢下面的博客 http://hi.baidu.com/amilipan/item/2add3df6a284b9d042c36ace 一、opengl简介 OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图象(二维的亦可)。
图 解决方案 图 添加组件 图 select 接口
一、Window编程的方法主要有: 传统编写法(利用API函数)和交互式方法(利用MFC类库)两种。 (1)、利用Windows API函数编写Windows应用程序需要手工编写很多的代码,程序员需要对Windows的编程原理有很深刻的认识。
所有的windows应用程序必须包含两个基本函数WinMain()、Wnnproc(): 一、应用程序主函数WinMain() WinMain()是所有应用程序的入口,类似C语言中的Main函数。
深入MFC类库,需要先从windows应用程序的基本结构入手。 windows应用程序框架: windows操作系统采用了图形用户界面,借助与它提供的API函数,用户可以编出具有漂亮图形界面的windows应用程序,这些程序都有着相同的窗口风格和菜单结构。
如果你问比尔.盖茨,“你最欣赏的程序员有哪些?”,在他的回答中,肯定会出现John Carmack(卡马克)的名字。 John Carmack(全名为John D. Carmack II,中文名为约翰·卡马克),生于1970年8月20日,是享誉世界的著名程序员,在电视游戏领域被尊为偶像。
一、经典问题 没有配置opengl的vc++工程,直接调用这些相关头文件就会报错。 Cannot open include file: 'gl/glut.h': No such file or directory 二、解决过程 1、下载并安装glut库 opengl的glut库 GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。
感谢下面的参考博客 http://www.cnblogs.com/xiaojinma/archive/2012/12/07/2806635.html 一、为什么要用DirectX9.0 SDK Microsoft DirectX 是这样一组技术:它们旨在使基于Windows 的计算机成为运行和显示具有丰富多元素(例如全色图形、视频、3D 动画和丰富音频)的应用程序的理想平台。
在VC++6.0环境下如何编译一个工程的debug和release版本呢?详细见下图解: 图 开始时没有的debug/release 图 弹出配置对话框 图 选择编译成release版本 图 开始编译release版本 ...
一、二分查找原理说明: 某人手中拿着一个从1到100(有序的)里的一个数,要猜中其是什么数。 比较好的方法是: (1)、先100/2=50,判断在大于50还是小于50; (2)、如果小于50,(0+50)/2,判断在大于25还是小于25; ...
随着用户程序的执行和结束,系统不断的为其进行分配与回收物理页面,这必然会产生大量的碎片,这些碎片被分成了两类:内部碎片与外部碎片。如下图: 那么接下去我们要为程序分配一个3个连续的物理页面显然不可行了,虽然我们实际的物理内存中存在着3个物理页面这么大的空间,这些不连续的物理页面就成为了外部碎片。
首先可以直接用Visual Studio 2008的打开VC6的工作区文件和项目文件(dsw和dsp),并将其升级为VS2008的解决方案格式和项目格式(sln和vcproj),VC9的编译器相对于VC6有了很大的变化,一些编译参数和链接参数被废弃(比如/map:line),有一些改变了名称,还有新增的选项,不过不用担心,升级过程会自动对其进行转换,最终都会得到一个正确的解决方案和VC项目文件,这个过程不会遇到太多的麻烦,问题都出在随后的编译过程中,下面就将我在移植的过程中遇到的问题和我的解决方法总结一下,希望对还在用VC6维护代码的朋友有所帮助。
一、血案现场 1、FAT32系统,D盘上的一个工程文件 运行报错 2、解决方案 不要将项目放在FAT32系统的盘符里运行,而要放到NTFS系统的系统运行。 图 NTFS系统盘符的项目 图 正常无障碍运行 三、感谢下面的参考博客、附上其原来更详细的解决方案 http://blog.
一、案例问题现场 图1 出错现场 出错原因分析: 在DGV上一阵乱点之后,偶尔会有一两次没有选中DGV里面的行,但是private void dataGridView1_Click(object sender, EventArgs e){ } 而此时dataGridView1_Click内部有用到 this.dataGridView1.SelectedRows[0]之类的话,就会触发上图1的错误。
对象对象程序设计,为跨窗体调用提供了良药:即构造函数。只要将某一个窗体对象以参数形式传入到另一个窗体对象的构造函数,即可实现。 一、实际案例需求 图1 Form1窗体设计 图2 Form2窗体设计 如图1、图2,现在要求图1按下按键,自己锁住,弹出图2;然后图2按下按键,自己关闭,解放图1的按键。
1、案例代码 this.dataGridView1.Rows.Clear(); if (Get_One_User(Convert.
1、在光盘找到软件目录 2、双击开始运行 2.1 提示要解压,点”unzip”进行解压 2.2 解压成功 自动进入下面界面 安装成功,但这是一个试用版本。
1、打开FlyMcu,切换到STMISP tab页面,然后选中USB转串口COM PORT。 2、选择相应的HEX文件 3、设置烧写方式,一定要选 DTR低电平复位,RTS高电平进BootLoader。
一、USB转串口驱动安装 切记,安装时不要将USB线跟开发板连接。会引起安装不成功,而卸载又难以干净! 二、下载软件的安装 下载软件为一个绿色软件,不用安装! ...
未破解版本编译的代码的容量有限制,需要破解! 破解过程 keil软件安装成功!
一、隐藏和显示tabControl1中的tabpage的方法: tabControl1.tabPage1.Parent = tabControl1; // 显示 tabControl1.
一、春秋战国时期的励志格言警句:公元前770年-公元前221年 1、天行健,君子以自强不息。———《易经》 2、发奋忘食,乐以忘优,不知老之将至。
1、案例现场 VS使用过程中,经常会出现像图1所示情况,错误列表等常常会悬空出现,极不方便!如何处理? 图1 2、解决方案 手动“错误列表”窗体,直到VS中间区域出现如图2的”十”字,将“错误列表”移动到“十”的下面一个剪头处,当出现如图2的 蓝色阴影时放开即可。
一、案例工程 1、案例代码 #include stdio.h> #include stdbool.h> #include math.h> #define YES 1 #define NO 0 int isprime(int x) { ...
前两天,一朋友碰到一个问题。系统重装后,开机显示器上显示“输入不支持”,且伴随一个框,在跳来跳去,很影响工作! 于是,开始根据错误提示在网上搜索,有的说是驱动问题,于是下载驱动重新安装,但是还是不行。
一、案例代码及运行效果 // Class_Construct_Seq.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include iostream> #include string> using namesp...
CGI是Common Gateway interface的简称,它是一个连接外部应用程序与web服务器交互的一个标准接口。CGI接口提供在超文本(HTML)的文件编写的时候,可以结合其他外部的程序语言,让使用者能够通过浏览器窗口输入一定的数据信息,再把屏幕上的窗口收集得到的数据信息传给一个应用程序,经过web服务器主机处理后,做出响应,然后用合适的信息显示一个新的客户屏幕给用户看,以这样的方式来达到信息交互的目的。
一、PV原语的含义 P操作和V操作是不可终端的程序段,成为原语,PV原语及信号量的概念都是由荷兰科学家E.W.Dijkstra提出的。信号量sem是一个整数。Sem大于等于零时代表可供并发进程使用的资源实体数,但sem小于零时则表示正在等待使用临街区的进程数。
用生产者—消费者问题实现数据同步通信数据同步通信过程实际上等同于生产者—消费者问题( Producer-Consumer Problem) . 生产者—消费者问题是一个著名的进程同步问题,它描述的是: 用一群生产者进程生产消息,并用此消息提供给消费者进程消费.
1、semaphore信号量类(又称信号灯) 用于控制对资源池的访问。线程通过调用semaphore的WaitOne进入信号量,通过调用semaphore的Release方法退出信号量。
一、理论及例程 String substring(int beginIndex) String substring(int beginIndex, int endIndex) String.Substring (Int32) 子字符串从指定的字符位置开始。
一、工程案例 1、工程代码 /**************************************************************** * Name : int_type.
一、代码片段 假设 fin = “ Name 96 Name 93 Name 83 Name 81...
一、案例完整代码 点击(此处)折叠或打开 /**************************************************************** * Name : sort_and_output.c * Author : dyli2000 * Date : 20121102 * Description : 对学生成绩由高到低输出案例。
1、错误写法 数据在声明的时候,下面的写法是不合法的。 char write_buf[]; char read_buf[]; 2、合法写法 char write_buf[100]; char read_buf[] = "abcdef"; 3、数组初始化的三种方法 (1)、memset(write_buf,‘0’,100); 说明,本行是将字符’0’,赋值给数组的每一个元素。
本人推荐使用方法一 方法一: for (int i = 0; i comboBox1.Items.Count; i++) { MessageBox.Show(comboBox1.
一、案例代码 /**************************************************************** * Name : rondom_create_score.
引语:用字符串常量给字符数组赋值过程分析,涉及到数据在内存的分配情况,做一个分析! 一、测试案例,假设在某一个函数内部 测试代码段: char a[] = "abcd12"; printf("len = %d\n",strlen(a)); ...
一、案例代码 #include stdio.h> #include string.h> int main(int argc,char** argv) { char s1[] = "abcd0xyz"; printf("s1 is %s\n",s1); char s2[] = "abcd\0xyz"; printf("s2 is %s\n",s2); return 0; } 输出结果: 二、案例分析 由上面可得,\0与0在计算机内部是完全不同的两个东西。
1、点击任务栏的NVIDIA设置 2、显示->设置多个显示器 选择“独立配置,互不相关(双屏显示模式)” 3、设置后效果
1、选项设置 DataGridView有一个ScrollBars,可以设置水平滚动条,垂直滚动条,或者两种包含。 2、实际运行效果
参考文档 Wireshark基础使用说明.pdf
数据表设计 create table tbl_emp( id integer primary key , name varchar(40), age smallint, birthday datetime); sqlite3是数据库连接对象,用来操作数...
Wireshark提供了简单而强大的过滤语法,你可以用它们建立复杂的过滤表达式。你可以比较包中的值,合并表达式为多个指定表达式。本节介绍了相关操作。你可以在Wireshark Wiki Display页找到发现大量的显示过滤范例。
Wireshark使用libpcap过滤语句进行捕捉过滤(what about winpcap?)。在tcpdump主页有介绍,但这些只是过于晦涩难懂,所以这里做小幅度讲解。 提示 你可以从http://wiki.
1.1. 什么是Wireshark Wireshark 是网络包分析工具。 网络包分析工具的主要作用是尝试捕获网络包, 并尝试显示包的尽可能详细的情况。 你可以把网络包分析工具当成是一种用来测量有什么东西从网线上进出的测量工具,就好像使电工用来测量进入电信的电量的电度表一样。
本人认为好注释的最高境界就是用代码来阐述! 请看下面的案例:
Bjame的观点,整洁的代码至少要保证两点: 1、整洁美观,能让人看了会心一笑; 2、运行效率、性能最优! 代码整洁之道,大道至简也!最终要达到减少重复代码,提高表达力,构建抽象层、中间件!
讲代码的整洁之道,首先要认识到写垃圾代码的代价! 请看下面故事: 图1 随着乱码越来越大,再也无法理清,最近束手无策,趋向为零。当生产力下降时,管理 层只有一件事可做:增加更多的人手到项目中,期望提升生产力。