
wls的笔记
王林森
当蝴蝶在南半球拍了两下翅膀,它就会稍微飞高一些。
(已迁往www.cnblogs.com/wlsandwho/)
展开
-
我的Windows核心编程——完成端口+套接字 图解
有什么不对的地方,请悄悄的告诉我。原创 2014-12-27 09:24:56 · 1409 阅读 · 1 评论 -
网络编程Winsock——accept
accept 接受连接SOCKET accept( _In_ SOCKET s, _Out_ struct sockaddr *addr, _Inout_ int *addrlen);原创 2013-12-05 18:46:08 · 2821 阅读 · 0 评论 -
读书笔记——Windows环境下32位汇编语言程序设计(3)一些基础知识
声明函数用proto定义函数用proc局部变量只能定义,不能赋初值,类型不能用缩写。全局变量可以定义的时候赋初值,默认值为0。在invoke中,参数可以使用addr取址。sizeof 字节长度lengthof 数据的项数原创 2013-12-28 12:02:55 · 924 阅读 · 0 评论 -
Message Map Macros (MFC)
To support message maps, MFC supplies the following macros:Message-Map Declaration and Demarcation MacrosDECLARE_MESSAGE_MAPDeclares that a message map will be used in a class翻译 2014-01-29 21:01:36 · 1354 阅读 · 3 评论 -
问题解决——限制窗口的最小尺寸
对于限制对话框的最小尺寸,网上好多方法。有在OnSize里面SetWindowPos或者MoveWindow的,也有在OnSizing里面用这两个函数的。显然这都不是好办法,会刷屏乱闪。原创 2014-06-23 09:27:33 · 2755 阅读 · 0 评论 -
读书笔记——数据结构(2)运行时间中的对数
某些分支算法将以O(logN)时间运行。一般法则:如果一个算法用常数时间(O(1))将问题的大小削减为其一部分(通常是1/2),那么该算法就是O(logN)。另一方面,如果使用常数时间知识吧问题减少一个常数(如将问题减少1),那么这种算法就是O(N)的。三个例子:1.对分查找(二分查找)给定一个整数X和整数A0,A1,……,AN-1,后者已经预先排序并在内存中,求使原创 2013-07-20 20:46:02 · 906 阅读 · 0 评论 -
读书笔记——数据结构(2)算法分析
算法是为求解一个问题需要遵循的、被清楚地制定的简单指令的集合。对于一个问题,一旦给定某种算法并且以某种方式确定其是正确的,那么重要的一步就是确定该算法将需要多少诸如时间或空间等资源量的问题。典型增长率估计运行时间1.for循环一次for循环的运行时间至多是该for循环内语句的运行时间乘以迭代的次数。2.嵌套的for循环从里向外分析这些循环。在一组嵌套原创 2013-07-20 19:11:09 · 884 阅读 · 0 评论 -
读书笔记——网络编程与开发技术(3)基于TCP/IP协议的网络编程相关知识
TCP/IP协议:数据链路层,网络层,传输层,应用层。IP地址分为5类:A类、B类、C类、D类、E类。(A类、B类、C类是基本类,D类多用于多播传送,E类为保留类。)“*”表示网络标识位。A类0*******xxxxxxxxxxxxxxxxxx原创 2013-11-30 11:59:07 · 1086 阅读 · 0 评论 -
读书笔记——Windows环境下32位汇编语言程序设计(2)配置环境
一直想买本罗云彬的Win32汇编书,现在终于出典藏版了,就买了本,读一读,涨涨姿势。我把笔记本光驱拆下来添加了个硬盘,现在想装回去发现坏了,所以守着CD盘,代码却用的是第三版的,这真是个悲剧啊。----------------------------------------------我是分割线------------------------------------------------原创 2013-12-25 16:43:38 · 1440 阅读 · 1 评论 -
MFC9.0 Outlook控件的标题显示无法修改
问题的发生很巧合,本着试试看的态度我创建了个Outlook风格工具栏,然后很随意的敲了个“界面啊”。后来这个“啊”始终去不掉。原创 2014-06-21 11:21:38 · 1513 阅读 · 0 评论 -
问题解决——MFC SDI程序 CFormView中控件随窗口缩放
SDI程序,是要缩放的,如果是往里输入文字的话,这倒没什么,但是这次我使用的是CFormView类,里面加了控件。下面是对CFormView中控件缩放的分析,以及具体的实现代码。原创 2014-06-24 14:38:35 · 5026 阅读 · 3 评论 -
读书笔记——添加光照之后再应用纹理贴图以保证镜面亮点
辅助镜面颜色:在微利贴图之后再应用镜面亮点。(通过加法而不是乘法。)调用glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL, GL_SEPARATE_SPECULAR_COLOR);想要恢复则调用glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL, GL_SINGLE_COLOR);void Set原创 2013-10-23 23:55:05 · 2325 阅读 · 0 评论 -
读书笔记——COM技术内幕(1)组件
COM,即组件对象模型,是关于如何建立组件以及如何通过组件建构应用程序的一个规范。COM给开发人员提供的是一种开发与语言无关的组件库的方法,但COM本身并没有提供任何实现。组件必须动态连接。组件必须隐藏/封装其内部实现细节。COM组件是以Win32动态链接库(DLLs)或可执行文件(EXEs)的形式发布的可执行代码组成的。原创 2013-10-09 15:53:13 · 860 阅读 · 0 评论 -
读书笔记——Windows核心编程(8)Interlocked系列函数
先让我们来复习下小学知识A+B=C//式中A为被加数,B为加数。A-B=C//式中A为被减数,B为减数。再让我们来明确一个知识点:返回值为void的Windows函数意味着一定会执行成功。------------------------------------我是可爱的分割线------------------------------------必须确保传给这系原创 2013-11-29 10:59:12 · 3728 阅读 · 0 评论 -
网络编程Winsock——WSAStartup
WSAStartup 初始化,返回值为错误码,不需要再调用WSAGetLastError。int WSAStartup( _In_ WORD wVersionRequested,//高字节:副版本,低字节:主版本,使用MAKEWORD(X,Y)宏来生成 _Out_ LPWSADATA lpWSAData//);原创 2013-11-30 17:31:07 · 7196 阅读 · 0 评论 -
读书笔记——Windows核心编程(2)禁止C运行时触发的所有Debug Assertion Failed对话框
1 定义一个函数void _invalid_parameter( const wchar_t * expression, const wchar_t * function, const wchar_t * file, int line, uintptr_t pReserved);2 注册这个函数_invalid_parameter_handler原创 2013-11-21 11:53:06 · 1567 阅读 · 0 评论 -
问题解决——在虚拟机上测试串口软件 收到错误数据
在虚拟机上测试串口软件 收到错误数据。原创 2014-10-28 08:42:49 · 2233 阅读 · 1 评论 -
读书笔记——数据结构(1)开篇吐槽
离职好多天了,本来要陪着两个从青岛来的哥们游北京,但是这两个人太屌丝了,昨晚上两个去了三里屯酒吧花了九百多……所以今天他们去北海我就没跟着,不想被坑。打算写写数据结构的东西,回忆一下各种知识,看看回青岛能不能找个工作,不行我就去软件园下面卖盒饭。---------------------------我是吐槽专用分割线-------------------------------原创 2013-07-20 13:06:37 · 842 阅读 · 0 评论 -
读书笔记——Windows核心编程(2)比较字符串
1. CompareString以符合用户语言习惯的方式,EX版本使用UNICODEint CompareString( __in LCID Locale, __in DWORD dwCmpFlags, __in LPCTSTR lpString1, __in int cchCount1, __in LPCTSTR lpString2, __in原创 2013-11-21 18:20:19 · 1447 阅读 · 0 评论 -
网络编程Winsock——socket
只列举了部分参数------------------------socket 创建套接字。SOCKET WSAAPI socket( _In_ int af,//地址族或者协议族,两者一个意思,随便用那种都可以。AF_INET是IPv4,AF_INET6是IPv6 _In_ int type,// _In_ int protocol);参数一:MSD原创 2013-12-01 16:25:49 · 2039 阅读 · 0 评论 -
网络编程Winsock——bind
bind 绑定套接字,成功返回0,错误可以调用WSAGetLastErrorint bind( _In_ SOCKET s,//一个尚未绑定的套接字 _In_ const struct sockaddr *name,//绑定到套接字的地址 _In_ int namelen//参数二的字节长度);MSDN上的一段话表明了为什么要有这么一个绑定操作。“When a sock原创 2013-12-01 23:35:15 · 2462 阅读 · 0 评论 -
网络编程Winsock——connect
connect 与特定的套接字建立连接int connect( _In_ SOCKET s, _In_ const struct sockaddr *name, _In_ int namelen);原创 2013-12-19 10:33:33 · 4854 阅读 · 0 评论 -
读书笔记——Windows环境下32位汇编语言程序设计(5)模态对话框
资源可以用VC之类的生成,然后拷贝出来。例如:每一个MFC工程都有一个resource.h,没有做任何修改时,这个resource.h文件是原来自带的。当对资源进行过修改添加之类的时,新添加的资源的ID都会被加入的这个工程的resource.h中。在Win32汇编的RC文件中,开头包含的那个resource.h没有做过任何修改,所以要把新添加的资源的ID用#define宏添加进来。#inc原创 2014-01-02 20:12:51 · 1074 阅读 · 1 评论 -
MFC中添加用户自定义消息
1、定义一个宏(用户自定义消息从WM_USER开始)#define WM_XXXXX WM_USER+数值2、声明一个函数并实现afx_msg LRESULT OnXXXXX( WPARAM wParam, LPARAM lParam);3、关联宏和函数BEGIN_MESSAGE_MAP(CWlsNetMp3PlayerClientDlg, CDialogEx) ON原创 2013-12-18 18:07:35 · 810 阅读 · 0 评论 -
读书笔记——Windows环境下32位汇编语言程序设计(3)求复数模的子程序
3.6.1.1中的例子_Calc proc _dwX,_dwY local @dwResult finit fild _dwX fld st(0) fmul ;i*i fild _dwY fld st(0) fmul ;j*j fadd ;i*i+j*j fsqrt ;sqrt(i*i+j*j) fistp @dwResult ;put result原创 2013-12-26 10:35:45 · 1133 阅读 · 1 评论 -
读书笔记——Windows环境下32位汇编语言程序设计(13)关于EXCEPTION_DEBUG_INFO结构体
在动手自己尝试编写树上第13章的例子Patch3时,遇到了一个结构体EXCEPTION_DEBUG_INFO。这个结构体在MASM的windows.inc中的定义和MSDN中的定义不一样。(我使用的是masm32v11r.zip版的MASM,参阅的MSDN链接为http://msdn.microsoft.com/en-us/library/windows/desktop/ms679326%原创 2014-01-27 21:21:36 · 1130 阅读 · 0 评论 -
读书笔记——Windows核心编程(13)Windows内存体系结构
对于32位进程(0x0000 0000~0xFFFF FFFF),有4GB的地址空间。每个进程都有自己专有的地址空间,当进程的各个线程运行时,它们只能访问属于该进程的内存。这4GB其实是虚拟地址空间,不是物理存储器。为了能够正常读写数据,需要把物理存储器分配或者映射到相应的地址空间,否则将发生访问违规错误(Access Violation)。1原创 2013-08-11 16:14:03 · 805 阅读 · 0 评论 -
读书笔记——各向异性纹理过滤
启用 if (gltIsExtSupported("GL_EXT_texture_filter_anisotropic")) { GLfloat fLargest; glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT,&fLargest); glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE原创 2013-10-24 12:45:27 · 1978 阅读 · 0 评论 -
读书笔记——使用模板缓冲区
//标红的为关键代码 GLfloat angle=0.0f; GLfloat radius=1.01f; glEnable(GL_STENCIL_TEST); glClearStencil(0); glClear(GL_COLOR_BUFFER_BIT|GL_STENCIL_BUFFER_BIT); glColor3f(1.0f,0.0f,1.0f); glStencil原创 2013-10-22 16:04:16 · 1084 阅读 · 0 评论 -
读书笔记——Windows核心编程(8)Interlocked单向链式栈
SLists使用了无锁算法来保证原子同步,以提升系统性能,避免了诸如优先级挂和互锁的问题。注意:所有的链表项必须对齐到MEMORY_ALLOCATION_ALIGNMENT。否则会出现奇葩的错误。原创 2013-11-29 12:09:19 · 4255 阅读 · 0 评论 -
网络编程Winsock——WSACleanup
WSACleanup 清理,成功返回0,可用WSAGetLastError来获取错误码。在多线程环境中,调用此函数将终止所有线程的套接字。int WSACleanup(void);需要注意:当调用了WSACleanup,在此进程中任何挂起的或者异步的套接字调用都会取消,而且不会发出通知消息也不会设置事件对象。overlapped(这个单词怎么翻译才算好?)的也是。为了使挂起的数据发送出原创 2013-11-30 19:39:26 · 2409 阅读 · 0 评论 -
设置自己的RadASM颜色
在RadASM.ini中的color节添加4=wls_asm_color,16777215,0,8388608,16777215,15777984,12644544,12632304,16441763,8421504,8388608,14286847,0,14286847,0,14286847,0,8421440,16711680,37781504,4227072,9508725,168099原创 2013-12-27 19:11:07 · 1228 阅读 · 0 评论 -
问题解决——使用GP-3120TN打印条形码标签
我仔细想了下原因:在Win7+VS2010下,在MFC中使用msbcode9.ocx控件,我只能将其所在位置的DC画出的数据发送到打印机上,这跟用打印机打图片没有什么区别。由于将屏幕内容打印到打印机上,这里面需要一个比例缩放,使用double类型的变量来表示,这是没有什么疑问的。但是int×double再转换成int,这里面会有损失,这将导致一些细微的变化,垂直方向没什么,水平方向将影响条形码细条的宽度和距离——也许这就是我失败的原因。原创 2014-07-29 16:27:16 · 6280 阅读 · 4 评论 -
问题解决——使用串口调试助手发送控制字符 协议指令 <ESC>!?
经过不懈努力,不要问我为什么是不懈努力,这些年就没有操作过串口,也没有用过串口调试助手。终于知道了如何在这个工具里调用这个命令了。一些东西,隔行,隔远山。原创 2014-07-25 11:34:36 · 13315 阅读 · 2 评论 -
问题解决——Group Box控件遮挡其他控件
一开始我在写一个小例子,界面显示效果是右边的样子。后来打算用别的方法实现下逻辑,又写了一个小例子,结果界面显示效果却是左面的样子。当我看到界面效果不一样时,当时我就不乐意了,因为我的属性设置都是一样的呀!原创 2014-07-22 15:06:03 · 5587 阅读 · 0 评论 -
读书笔记——OpenGL超级宝典
对于某些函数的理解glClear和glClearColorglClearColor指定glClear清除特定缓冲区时使用的值。glFlush让所有已发送的命令尽快的由实际的绘制引擎执行。glViewPort前两个参数指的是左下角。glPushMatrixglRotatefglBeginglEndglPopMatrixglutSwapBuffers原创 2013-08-19 00:39:38 · 1274 阅读 · 0 评论 -
读书笔记——Windows核心编程(15)在应用程序中使用虚拟内存
微软的Windows提供了三种机制对内存进行操控1 虚拟内存(最适合管理大型对象数组或大型结构数组)2 内存映射文件(大型数据流/文件,共享数据)3 堆(大量的小型对象)预订地址空间区域VirtualAllocPVOID VirtualAlloc(PVOID pvAddress,//内存地址,传NULL则由系统指定位置,必须始终位于进程的用户分区中,如果不是分配粒度的原创 2013-08-11 20:46:43 · 1207 阅读 · 0 评论 -
读书笔记——数据结构(1)关于递归
当一个函数用它自己来定义时就称为递归。但重要的是要记住,C提供的仅仅是遵循递归思想的一种企图。不是所有的数学函数都能有效地(或正确地)由C的递归模拟来实现。递归的4个基本法则:1.基准情形。必须要有某些基准的情形,它不用递归就能求解。2.不断推进。对于那些需要递归求解的情形,递归调用必须总能够朝着产生基准情形的方向推进。3.设计法则。假设所有的递归调用都能运行。4.合成效益原创 2013-07-20 14:09:58 · 880 阅读 · 0 评论 -
读书笔记——数据库的ADO开发总结
基本上是对 ADO+开发指南.pdf 的摘抄和总结,以及个人心得。文章末尾有《ADO+开发指南.pdf》的资源下载,附带个人批注。------------------------------------------------------------------------------------ADO(ActiveX Data Object)是Microsoft数据库应用程序开发原创 2013-10-09 12:52:50 · 1073 阅读 · 0 评论 -
网络编程Winsock——listen
listen 监听即将到来的连接。返回值的错误码可以调用WSAGetLastError。这是个阻塞函数,没啥好说的。int listen( _In_ SOCKET s, _In_ int backlog//最大能连接的数量,SOMAXCONN将使用底层服务提供的值的。);如果连接队列满了,就会导致客户端收到连接拒绝的错误(WSAECONNREFUSED)。下面是MSDN原创 2013-12-02 18:53:35 · 3054 阅读 · 0 评论