自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大坡3D软件开发

自主操作系统和CPU--用软件和芯片来改变世界

  • 博客(21)
  • 资源 (44)
  • 收藏
  • 关注

原创 类的继承

在软件设计里,代码的复用和代码稳定性,一直是软件开发的重要目标之一,因为只有这样才能积累各种基础组件,以及维护以前做过的工作。从复用的特性来说,就是利用以前做过的工作,比如就像硬件里的IC一样,不需要知道它是怎么样实现的,只要使用它就行了。因而软件也需要有这种IC,在代码层次里的IC,以前看来只是用函数的方式复用,或者只是数据结构的复用。当迈进面向对象编程时代时,自然而然地想到就使用类来复用了,这

2014-08-29 12:29:27 2271

原创 每个窗口单独处理消息的例子源码

整个窗口使用消息类重新写的源码如下:#windows应用程序#使用类来描述#开发人员:蔡军生(QQ:9073204) 深圳 2014-8-24from ctypes import *from ctypes.wintypes import *WS_EX_APPWINDOW = 0x40000WS_OVERLAPPEDWINDOW = 0xcf0000WS_CAPTION = 0x

2014-08-28 08:36:41 2137

原创 窗口消息处理对象的传递

在前面已经定义好窗口的消息处理类,虽然拥有处理能力了,但还没有放到回调函数里进行相应的调用,那还是达不到目标,还需要下面两个细节的处理,才可以嵌入到消息处理过程里。我们来顺着消息类的传递路径来进行分析它的具体过程,这样理解起来会更顺畅一些,更符常人的思维。具体的过程如下图所示:从上图可以看到,使用Controller类来创建窗口处理消息的实例对象ctrl,然后把它传送给WinMaker的实例对象,

2014-08-27 12:38:13 1726

原创 窗口的消息处理

我们知道一个应用程序一般都不是只有一个窗口组成的,往往是多窗口组成的,比如一个对话框的窗口上有一个按钮,这里对话框是一个窗口,按钮也是一个窗口。如果一个对话框上有100个按钮,就是100个窗口,这样句柄会比较多。因而出现了DirectUI的设计方法,所有按钮和主窗口都是同一个窗口,采用分不同区域来绘画而成。这里就遇到了一个问题,每个窗口是独立存在的,但在前面的例子里,可以看到每个窗口都是调用PyW

2014-08-26 12:42:13 2220

原创 窗口显示类

窗口在前面已经注册,并且已经创建出来了,但这时这个窗口并不能出现在我们的眼前,又是什么原因呢?哦,还不显示出来,原来是有原因的,就是窗口有多种状态,窗口可以隐藏、普通显示、最大化显示、最小化显示等。并且创建出来时,不立即显示,也是可以方便一性地创建很多很多窗口,最后才一次性地显示出来;另外创建窗口之后在系统看来窗口已经是可用的,这时可以先在窗口上绘图,当完成时再一次性显示出来,也避免窗口不断地刷新

2014-08-25 12:45:22 2166

原创 窗口创建类

在前面已经学习怎么样把注册窗口的功能封装成类的形式,接着下来就是创建窗口的功能,而这部分功能又是怎么样编写才是最合适的呢,以便后面所有开发工作都可以复用这些代码。我们来仔细地分析一下窗口上主要有什么东西是可变的,什么东西不变的,原则上就是把可变的东西变成通过函数方式来改变,不变的东西放在类内部,这样减少类的使用者在细节上考虑的问题。目前来看,一个窗口最容易变化的就两样东西:窗口类型,指明这个窗口是

2014-08-22 13:08:29 2258

原创 类的成员

类的成员变量在Python里描述数据结构是使用类成员变量的方式,从上面的例子可以看到这样描述:self.wndClass = WNDCLASSEX()这行代码是写在类的构造函数里,通过使用类自身对象self来给类添加成员变量wndClass 。由于在Python语言里没有声明,每增加一个类成员变量,就是通过赋值的方式产生。不过,要注意的是Python语言里的成员变量是可以动态添加的,不但可以在构造

2014-08-21 12:58:41 2066

原创 类的构造函数/类的析构函数

类的构造函数Python类的构造函数是__init__,它与其它函数的区别,首先是通过前面和后面带两个双下划线来跟别的函数名称进行区分。它的格式如下:def __init__(self, 参数列表):def是定义函数的关键字,__init__是构造函数的名称,self是类本身的参数,用来区分那些函数是属于类。最后的参数列表是可有可无的。构造函数主要用来初始化成员变量和分配资源,它是一个类旦生后立即

2014-08-20 12:28:47 1894

原创 窗口类型注册类

从前面的窗口程序可以看到,这个程序主要做了三件事情,第一件是注册窗口,第二件是创建窗口,第三件是显示窗口。从程序的代码上,很容易就看出来每个函数是在做什么事情,这典型是基于函数式的编程,行云如流水般。对于小的程序,这样的编程方式是没有什么问题。现在我们来考虑一下如果要注册多个窗口,创建多个窗口和显示多个窗口,再使用这样的函数代码,就比较难复用了。因而随着编程技术发展和软件项目的增大,目前普遍基于面

2014-08-19 12:45:07 1963

原创 整个窗口应用的源码

为了方便查看,所有源码放在一起,如下:#windows应用程序from ctypes import *from ctypes.wintypes import *WNDPROCTYPE = WINFUNCTYPE(c_int, HWND, c_uint, WPARAM, LPARAM)WS_EX_APPWINDOW = 0x40000WS_OVERLAPPEDWINDOW = 0xc

2014-08-18 08:44:37 2022

原创 创建窗口的应用程序

通过前面的基础知识的学习,已经对ctypes库的基本功能学会了使用,为了加强这种知识训练,以及运用刚学习的知识的快乐,我们来创建一个稍稍复杂一点的应用程序。这个应用程序是所有后面应用程序的基础,只有学会这个程序的基本原理,才可以更进一步学习WIN32的API程序开发。更何况后面所有程序都会在这个程序上修改而成,这个就相当你的爬向高楼顶层的第一个台阶。在所有工程技术里,都会从一个小小的演示程序开始,

2014-08-18 08:42:29 2305

原创 指针

在很多C语言编写的函数里,大部分都需要传递指针,比如给函数里传送值进去,或者从函数里返回多个值。在Python里想要跟C函数交互,那么需要模拟指针的类型,才可以实现这种梦想。值得注意的是ctypes已经实现了这个梦想,只要使用它定义的函数pointer()就可以。如下面的例子:#windows应用程序#开发人员:蔡军生(QQ:9073204) 深圳  2014-8-15from ctypes im

2014-08-15 08:40:04 2036

原创 结构体

在C语言的世界里,程序的组成就是结构体加算法。因此,与Win32的API交互中,肯定少不了结构体的类型。在Python里定义的类,并不能直接使用于C的函数,需要通过ctypes里的结构类继承之后,并按它的格式填写字段才可以使用。下面的例子就是定义一个最简单的结构体,表示屏幕上一个点的坐标的结构体,如下:#windows应用程序#开发人员:蔡军生(QQ:9073204) 深圳 2014-8-14

2014-08-14 08:32:40 1919

原创 回调函数

回调函数就是一个通过函数指针调用的函数。如果你把函数的指针作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数主要用来为不确定的事件、不确定的时间上进行的动作或响应。比如在C库里实现了一个算法叫做快速排序(qsort),为了能让库更加通用,不想在函数中嵌入排序逻辑,而让使用者来实现相应的逻辑,这时就可以使用回调函数方式来实现。如msvcrt.dll里的快速

2014-08-13 08:45:38 2558

原创 实例句柄

在Windows应用程序中,总需要加载应用程序文件到系统内存里,为了标识每个文件在内存的区别,Windows使用了句柄来标识这些文件。比如在一个应用程序里,有一个可执行文件(EXE)和多个动态连接库文件(DLL),这时可以标识可执行文件为0x1D000000,动态连接库文件为0x1D001000。这里的值只是举例,当系统运行应用程序时,就会分配实际的值给应用程序。加载到进程地址空间的每一个可执行文

2014-08-12 08:41:36 5998 1

原创 函数参数

在下面这行语句里:MessageBox(None, 'Hello World!', 'Hello World', 0)括号里的就是函数的参数列表。C语言编写的函数时,定义函数的参数是使用C语言的方式来定义,那么在Python里编程是使用Python定义的类型,这两者之间是有差别的,这种差别主要体现在类型定义内存的方式不一样,比如大小不一样,就算大小一样,在Python里还有每个对象的引用计数。比如

2014-08-11 08:40:03 2017

原创 函数名称

在这个例子的Python源码里,把从动态连接库获取到的函数地址赋值给变量MessageBox,然后通过MessageBox就可以调用动态连接库里的函数了。windll.user32是实现了加载动态连接库user32.dll,而windll.user32.MessageBoxW是实现了从动态连接库user32.dll获取到函数MessageBoxW的地址。如果获取一个在动态连接库里不存在的函数时,c

2014-08-09 08:41:29 2138

原创 windll对象

回过头来,再看一下windll和oledll的区别,这两者之间最大的区别是oledll调用的函数都是固定返回HRESULT类型的值,而windll是不固定的类型的。在Python 3.3版本之前,都是返回命名为OSError类型错误,在这之后就返回命名为WindowsError类型错误。通一大段的讨论,我们彻底地了解cdll、windll和oledll之间的区别,为了更加清楚地记住它们,总结如下表

2014-08-08 08:20:23 2706

原创 cdll和windll的区别

Python要想调用C语言写的动态连接库,不仅要兼容C接口的调用习惯,还需要兼容C语言的数据类型。幸运的是ctypes库已经做了这两方面的工作,以便调用动态连接库是非常方便的。在Hello World的程序里,这行代码编写如下:MessageBox = windll.user32.MessageBoxW从这行代码的简洁程度来看,是非常优美的。这种优美是由于ctypes库在背后做了非常多的工作,比如

2014-08-06 08:33:24 8169

原创 from语句

在整个应用程序里,只有三行语句,是一个最简短的WIN32的应用程序,但它的功能也是很有限,只是显示一个提示框,把一个字符串显示出来,其它什么事情也没有做。下面就来分析这三行语句了,别小看这三行语句,其实是隐藏着很多知识点在其背后。比如使用了三个关键字:from、import和None。其中from关键字和import关键字做成一个语句表达形式,它们的简单意思就是表示从某个模块(库)里导入模块顶层的

2014-08-05 08:51:55 2927

原创 Hello World程序

自从软件有开发教程开始,都倾向于使用一个最简单的Hello World程序为起点,我也不免了落后这个俗套,就从Hello World程序开始吧。从这个简短的程序开始,我们就开始进入了探索Python在Windows平台上开发Win32的API应用之旅,希望这次旅行让你不但掌握了更多知识,也会带来更多的乐趣,让我们都能改变世界,让世界变得更美好。对,当你学会使用Python开发WIN32的应用程序之

2014-08-02 15:09:31 1751

python抓取天气并分析 实例源码

Python代码抓取获取天气预报信息源码讲解。这是一个用Python编写抓取天气预报的代码示例,用python写天气查询软件程序很简单。这段代码可以获取当地的天气和、任意城市的天气预报,原理是根据url找到网站截取相应的数据展现。 python抓取广州天气并分析 实例源码

2017-08-28

wix3.11版本安装工具

wix3.11版本安装工具

2017-06-19

WiX3.10版本安装工具

WiX3.10版本安装工具

2017-06-19

GOOGLE的TPU论文

GOOGLE公开TPU的论文

2017-04-06

深度强化学习论文

DQN的论文

2017-03-17

书《深度学习》

2015年,深度学习三大牛Yann LeCun、Yoshua Bengio和Geoffrey Hinton在最新的《Nature》杂志首次合作的发表综述文章《Deep Learning》。本文为该综述文章的中文译文,深入浅出地介绍了深度学习的基本原理,核心优势和未来展望。

2017-03-13

手写识别的训练数据

MNIST训练数据

2017-03-10

俄罗斯方块游戏开发

俄罗斯方块游戏开发培训里的可执行文件,让大家可以查看相关的结果。以便是否参加培训。

2016-11-30

duilib界面库20161116

更新为VC2015编译的duilib,持续重构代码,使用最新的C++14的语法。

2016-11-16

duilib界面库20161017

duilib 界面库

2016-10-17

duilib界面库

duilib界面库,长期维护的界面库,在WIN10和VS2012上编译和开发、测试通过。

2016-10-10

国产8051模拟器

一款国产的8051模拟器(全部源代码) 本软件是一款8051模拟器,他的特点是可以模拟多处理器平台,在简单的多工作区间的界面上可以很方便的模拟8051处理器, 最重要的是这个单片机系统可以完全由你自己订制,你甚至可以随意创建自己的多单片机系统,什么SMP 基于串行总线的分布式系统,集群式系统,只要你能想到的,都可以办到,充分发挥你的想象力。现在1.0版本已经基本体现出了这种思想,在以后的版本中将使这一特性变的 更加强大!

2016-09-10

mysql开发管理工具

mysql数据库的开发管理工具。

2016-07-12

mysql-5.5.50-64

windows下的64位MYSQL的版本。

2016-07-10

python-3.4.4

python 3.4的32位的windows版本

2016-07-01

tinyxml2配套源码

在软件开发过程中,为了使软件有灵活的配置,特别像界面这样的配置,同时为了减轻重复开发的任务,需要把客户的个性化需求可以通过配置文件来修改,比如像界面的颜色配置,就可通过配置文件来修改,这时就可以采用XML文件来保存和修改这些参数配置。在不同软件之间进行通讯时,也可以采用XML协议来进行数据交换,特别像WEB服务的调用时,采用传送XML格式是基本的数据交换方式。基于这些任务的需求,需要软件开发人员会在C++里使用xml格式。

2016-06-27

protoc2.5执行文件

protoc执行文件

2016-06-24

protobuf 2.5

protobuf 2.5库代码和工具

2016-06-24

selenium的浏览器驱动

目前有很多的银行网站,还是以IE为标准的浏览器,因此这里主要采用IE为测试的例子,在这里可以下载不同版本的浏览器驱动,可以是32位的,也可以是64位的,根据自己的需要下载不同的版本。在本文章里,下载的是2.35.3版本:IEDriverServer.exe,把它放在目录f:\temp\里面。

2016-06-14

WIX制作C#应用程序安装包

WIX制作C#应用程序安装包

2016-05-26

开源鸿蒙4.0不能进入桌面的补丁

系统启动后进入不到桌面 当前系统有 bug,当出现此种问题时,需要执行 killall com.ohos.launcher。 里面的hap文件替换applications\standard\hap\下的同名文件。 目录 oh/applications/standard/hap

2024-03-17

开源鸿蒙 4.0 RK3566开发板配置

开源鸿蒙 4.0 RK3566开发板配置 https://mysoft.blog.csdn.net/article/details/136779805

2024-03-17

使用WeifenLuo.WinFormsUI.Docking的简单例子

使用WeifenLuo.WinFormsUI.Docking的简单例子,演示了简单地使用这个窗口布局库。

2021-12-10

hui_test_form.rar

H-ui.admin_v3.1.3.1的学习和测试例子,前端代码的经典。

2021-08-17

python_example.rar

pybind11的安装和编译的例子,可以快速地生成安装包。

2021-06-24

Mysql_20210615_1.rar

演示访问Mysql库的C++类库QTL

2021-06-15

TestSel1.rar

爬虫日记(28):scrapy使用中间件调用浏览器 相关代码

2021-03-29

ItemDemo_ua.rar

爬虫日记(25):Scrapy 中设置随机 User-Agent 二 的配套代码

2021-03-26

爬虫日记 Imgfn1.rar

爬虫日记(23):用scrapy快速地爬取蜂鸟网图片 相关的项目代码

2021-03-24

ImgDemo1.rar

爬虫日记(22):最简单地抓取图片,仅5行代码 相关配套代码。

2021-03-23

ItemDemo3.rar

爬虫日记(21):使用Pipeline模块写入文件二 的配套代码。

2021-03-23

ItemDemo2.rar

爬虫日记(20):使用Pipeline模块写入文件 的例子

2021-03-22

ItemDemo.rar

实例使用Item对象,适用初学者,《爬虫日记》配套源码。

2021-03-21

svm_hog_data.rar

使用到LineSVC里进行机器学习的训练数据,用来训练手写识别。 配套专栏文章使用,https://blog.csdn.net/caimouse/article/details/104599920。

2020-03-02

实现numpy的C++库扩展

使用C++来扩展numpy里的数据计算,这时就需要使用numpy的扩展库功能了,下面就来提供一个使用C++编写numpy扩展库的模板,这样大家就要减少很多弯路,减少跌入坑里的成本。这个扩展库的模板是从mahotas库里抽取出来的,经过最大化的简化,这样更加容易理解,更方便学习。

2019-11-24

STM32F407VET6工程模板

玩转STM32里文章配置的代码,这里学习的第一个工程代码,可以作为后继开发的模板工程。

2019-03-14

python web py入门配套源代码

python web py入门- 实现论坛,开发技术:后端采用Python+web.py+MySQL,前端采用HTML+CSS+JavaScript+jQuery+RequireJS。

2018-02-23

webpy演示例子1

webpy演示例子1, 用于配套文章相关资源。python web py入门(9)- 论坛首页的模板中模板 前面已经提到一个模板中可以套用另外一个模板,现在就来看看这个论坛基本布局模板是怎么样的?

2018-02-21

胶囊模型的代码

胶囊模型的代码在以下论文中使用: “Dynamic Routing between Capsules” by Sara Sabour, Nickolas Frosst, Geoffrey E. Hinton. 要求 TensorFlow ( 访问 http://www.tensorflow.org 了解如何安装和升级) NumPy (详见http://www.numpy.org/) GPU

2018-02-02

C++读写json文件

https://github.com/nlohmann/json 最好用的C++读写json库

2017-12-09

空空如也

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

TA关注的人

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