软件设计深度挖掘(二)(仅针对windows平台)实现杂谈篇

AUTOSAR CAN通信实战:DBC文件解析与Vector工具链集成指南 在汽车电子和嵌入式系统开发中,控制器局域网(CAN)总线是实现车载网络通信的核心技术。其工作原理基于多主、事件驱动的串行通信协议,通过差分信号在双绞线上传输数据帧,具备高可靠性和实时性。这项技术的核心价值在于为分布式电子控制单元(ECU)提供了标准化的交互通道,是构建现代汽车电子电气架构的基石。其典型应用场景包括车身控制、动力总成管理和高级驾驶辅助系统(ADAS)等。为了确保不同供应商的ECU能够正确解读总线上的原始数据,必须依赖一份统一的“数据字典”来定义信号的物理含义与格式,这正是CAN数据库(DBC) 阅读详情

软件设计深度挖掘(二)(仅针对windows平台)实现杂谈篇

    既然叫设计当然我们不能撇开它的可实现性了,上一节我说过,具体的系统
分析员应该具备的知识应该是错综百代,广博精微的!如果说软件的设计是经验
的积累,那么这些技术实现就是其中最重要的一环,因为对于我们来讲,技术的
更新远远超过了设计思想的更新。我们不能置基础而不顾,设计空中楼阁。下面
我们就讲一讲这些放面的涉及范围和解决方法。里面可能不是最优但我想足以抛
砖引玉了。
    现在围绕在我们面前的技术问题很多,很杂。不像10年前那么单纯,实现一个
问题的途径一般只有一两种,现在的解决方法真是层出不穷,黑白道的方法都有了。
每次出现一个新版本的东西就要学很久,现在我们应该看清楚了,我们不可能永远
走在浪尖,我们不能靠身体和知识搏斗了,要靠思想。msdn有谁看完了呢,没有!
有谁编写过300万行代码,也是没有,你不可能来实践所有的想法,因为你没有时间。
你只能针对某一个问题进行研究,就象爱因斯坦不会做饺子一样,我们都有各自的
领域。有时我们会发现某个人懂得真多,大家别信,大部分是想法,不是实践。系统
分析员要求就是想法的正确率要非常高了而已。因此这才是真正的经验,这个经验
有可能完成一项创举,也有可能埋葬一个工程。下面就我的经验来谈谈windows
下的各种技术实现方法。

    首先给大家一个例子:它完成的功能是将windows计算器的菜单变成记事本的
菜单:
        HWND hWndC;
 HWND hWndE;
 HMENU hMenu;
 hWndC = ::FindWindow("SciCalc",NULL);
 hWndE = ::FindWindow("Notepad",NULL);
 hMenu = ::GetMenu(hWndE);
 ::SetMenu(hWndC,hMenu);
将这段代码加入你的程序,一个按钮,或者菜单中,将计算器和记事本打开(notepad)
就可以允许看效果了。这个原理可以用来动态改变菜单,插入,删除,修改窗口和菜单的,也就是完全控制一个窗口是非常简单的,哈哈不信,试试啊!
    菜单变化后不能响应事件了对吧,那时ID号不对了嘛,这里仅仅做个示范,后面会详细解释的。从这个例子你应该可以理解到window的东西都是相通的,有很多原来认为很复杂的东西其实是非常简单的,只是我们的经验不足而已。不相信吗?那么我们再作个试验:如果你正确安装了directx8.0 SDK的话将下面编译成执行文件。(控制台工程)
#include <dshow.h>
void main(void)
{   //下面两个东西一个是建立图形用的类,一个是控制播放等操作的类(是接口)
    IGraphBuilder *pGraph;
    IMediaControl *pMediaControl;
    //下面这个一定要有了,就是说我的程序里面要用com组件的意思
    CoInitialize(NULL);
   
    // 找那个可以用的函数名称(就是接口)
    CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
                        IID_IGraphBuilder, (void **)&pGraph);
    pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl);
   

    // 下面的东西是播放函数调用了,其中"C://Example.avi"可以自己更改的
    // 这个东西可以播放很多东西,不只是avi,不信试试,什么图像,什么视
    // 频都可以(夸张了一点)
    pGraph->RenderFile(L"C://Example.avi", NULL);
    pMediaControl->Run();
    // 清楚原来使用的那个函数占用的内存了
    pMediaControl->Release();
    pGraph->Release();
    //告诉windows我们不用com组件了
    CoUninitialize();
}
   这个例子我们能体会到些什么了吧,什么显示jpg,显示mpeg了等等,我们有这么
简单的办法,很不错吧!
   再随便讲一个多显示器的东西,对于初学着来说好像很难啊,其实呢,
HMONITOR MonitorFromWindow( HWND hwnd, DWORD dwFlags);
这个函数就搞定了,编写多显示器的函数一共才6个,一个回调,一个枚举,一个info,下面就全是MonitorFrom×××了,觉得不可思议了吧!就这么简单.

   其实这些都是快餐,什么意思呢?别人没有涉及到这个领域就不会清楚里面的难易
程度,说一两句就明白了,这种办法很多也是靠经验的积累,但这种办法对于系统分析员来讲是有点花拳绣腿了。

我们后面将会步入正题,进行我们的开发之路。比如网络视频,什么语音通讯中心,vod,流媒体的开发等等了,我会一一讲解。

 
       

Ubuntu22.04中通过conda快速部署PyTorch开发环境(CPU/GPU双版本实战) 本文详细介绍了在Ubuntu22.04系统中,如何利用Conda高效部署PyTorch开发环境。文章分别提供了CPU与GPU双版本的实战教程,涵盖环境创建、镜像加速、版本匹配及深度验证等关键步骤,旨在帮助开发者快速搭建稳定、兼容的深度学习环境,从而专注于模型开发 阅读详情

相关推荐

计算机组成原理()—— 数据的表示与运算

本章目录引言一、数制与编码1.1 进位计数制1.1.1 进制及转换1.1.2 真值、机器数1.2 BCD码1.3 ASCII 码1.4 校验码1.4.1 奇偶校验码1.4.2 海明码1.4.3 CRC循环冗余码、定点数的表示和运算2.1 定点数的表示2.1.1 无符号2.1.2 有符号(原码、反码、补码、移码)2.2 定点数的运算2.2.1 移位运算2.2.2 加减运算(溢出判断)2.2.3 乘法运算2.2.4 除法运算2.3 强制类型转换2.4 数据的存储和排列三、浮点数的表示和运算3.1 浮点数的表示

S mile0804的博客 7419

测试基础系列之windows基础 第1讲

一、软件(software) 1、什么是软件? 计算机(computer)=硬件(hardware)+软件 软件=程序(program)+文档(document) 注意:软件测试测试对象? 软件测试的对象是软件,也就是程序和文档,所以提示大家,不能只测程序,测试中文档也是需要测试(审核)的。 2、软件开发的阶段划分?(重点) 步骤1:需求分析阶段 由需求分析人员完成 产出物:《需求规格说明书》 步骤2:设计阶段 由系统架构师/分析师完成 产出物:《概要设计说明书》、《详细设计说明书

谨言的博客 414

Rack与Ruby on Rails的集成解析

本文详细探讨了Rack作为Web应用服务器与Ruby框架之间接口的作用,并解析了Passenger如何通过Rack与Rails框架集成以提高应用性能。文章还简要介绍了Ruby on Rails框架,特别是其MVC架构和约定优于配置的设计理念。

weixin_35815766的博客 650

软件自动化测试开发指南,【龙测教程】windows自动化测试指南

一、系统要求版本:win10及以上、安装WinAppDriver1、WinAppDriver 官方文档https://github.com/Microsoft/WinAppDriver2、下载v1.1 Releasehttps://github.com/Microsoft/WinAppDriver/releases 3、安装成功后 4、启动如下图安装成功(验证之后可以按ENTER 退出,其他安...

weixin_29570795的博客 430

软件设计深度挖掘()

软件设计深度挖掘一 从软件工程说起   大家都会有这样的困惑:当一个项目摆到我们的面前,我们不知道如何进行分析处理,我们总是不能把握它们的工作量,对于难度我们也没有把握,或者不能确定我们的处理方法是否为最先进或者最稳定等等。我们可以拿出很多书籍进行参考,总想标新立异,但还是没有结果。我们寻找原因,却总是没有答案。下面我们就来谈谈这个问题。1.1 总体概念   这里我们不讲解某个函数的用

kathywp 1795

Ruby on rails 实战圣经:入门导览->Ruby on Rails 简介

Ruby on Rails 简介 “Life’s too short tobuild something nobody wants” - Ash Maurya, Running Lean 作者 Ruby on Rails是一套非常有生产力、维护性高、容易布署的Web开发框架。从一开始不知名的玩具,到现在它已经成为全世界Web应用程序开发的首选框架之一。进入学习的旅程之前,我们先了解为什么它如

605

Ruby on Rails 项目里面字符串过滤html标签

    Ruby on Rails 项目里面字符串去掉html标签没有特别直接的办法, 需要借助第三方lib:1 . 比较简单的方式, 不支持换行:require 'nokogiri' item = Nokogiri::HTML('&lt;a href="#"&gt;string&lt;/a&gt;') puts item.to_html2. 第种, 代码来自Github, 稍作修改:requ...

云上的日子 2128

Ruby on rails 实战圣经:Part 1: 入门导览->Ruby on Rails 简介

Ruby on Rails 简介“Life’s too short tobuild something nobody wants” - Ash Maurya, Running Lean 作者Ruby on Rails是一套非常有生产力、维护性高、容易布署的Web开发框架。从一开始不知名的玩具,到现在它已经成为全世界Web应用程序开发的首选框架之一。进入学习的旅程之前,我们先了解为什么它如此特别?什

Felomeng的技术博客 7208

Ruby on Rails 环境搭建

(1)下载Ruby 网址:http://www.ruby-lang.org/en/downloads/ Windows操作系统:Ruby 1.8.6 One-Click Installer点击下载即可(2)安装Ruby 双击Ruby 1.8.6 One-Click Installer即可安装。默认C:\Ruby(3)环境变量设置...

weixin_34150503的博客 71

社区专家谈Ruby及Rails的发展

最近,Ruby社区专家Paul Wilson撰文回顾了Ruby发展的过去和现状,同时对Ruby未来发展的方向表示了自己的担忧。\Paul从2005年开始接触Ruby,当时还有许多醉心于极限编程的同事,一起加入到Rails的时尚潮流中。许多Ruby开发者都来自敏捷社区,大家都对企业级Java编程中为了实现一点功能却要大量的代码和XML配置的做法很厌倦:\\元编程能力、动态类型、Ruby/Rails带...

cpongo5 224

Ruby on Rails之InstantRails使用

Ruby on Rails之InstantRails使用 進入網站 http://instantrails.rubyforge.org/wiki/wiki.pl?Instant_Rails  選擇[Download] 下載 Insta...

simon_lin 122

[ruby on rails]做网络爬虫或json与string互转

gem rest-client可以让我们用 Ruby 发送 HTTP 请求 在irb中: require 'rest-client' response = RestClient.get "http://www.weather.com.cn/weather1d/101010100.shtml" response.body require 'nokogiri' doc = Nokogiri::HTM...

深度的博客 645

Ruby on Rails 简介。来自于一个台湾网站,某些术语与大陆翻译不同

转:https://ihower.tw/rails4/intro.html Ruby on Rails 簡介 “Life’s too short to build something nobody wants” - Ash Maurya, Running Lean 作者 Ruby on Rails是一套非常有生產力、維護性高、容易佈署的Web開發框架。從一開始

xyqzki的专栏 1244

Rails 部署选 Mina 还是 Capistrano?轻量透明与掌控力的实战权衡

Rails 应用部署本质上是将代码、依赖、配置和运行时环境在服务器上可靠组装的过程。其核心原理在于通过 SSH 协调远程执行(如 git pull、bundle install、db:migrate),而技术价值体现在可重复性、原子性与故障可见性上。主流方案中,Capistrano 以约定优于配置提供丰富插件生态,但抽象层级高、调试成本大;Mina 则回归本质——作为 Ruby 编写的 SSH 命令组装器,强调流程透明、无状态、低侵入,天然适配需要精细控制、快速排障及渐进式自动化运维的中小型 Rails 生

weixin_30328063的博客 357

Ruby on Rails出现脚本和计时器安全问题

最近发现的两个安全问题给Ruby on Rails社区带来了一些忙乱,每个Rails开发者都必须注意近期发布的升级包。\易受攻击的跨站脚本\第一,可能是最严重的就是Brian Mastenbook发现的跨站脚本(XSS)的脆弱,并且在他的博客中报告了这个问题。Brian描述了他是如何对Twitter和37signals Basecamp的Ruby on Rails进行跨站脚本攻击的。\我的注意力很...

cpongo5 124

[ruby on rails] 深入(2) ruby基本语法

1. 调试&注释&打印输出 1.1 调试 ruby属于解释型语言,即脚本,在linux上,脚本的执行无非三种: 1. 用解释器运行脚本 解释器 脚本文件 即:ruby 脚本文件 2. 直接运行脚本 在脚本文件里面用 #! 脚本解释器 定义好脚本解释器路径,然后再授予脚本执行权限,接着直接运行 ./脚本文件...

168

Ruby on Rails项目的救赎

Ruby on Rails发布已有五年,在此期间,开发者编写了大量的应用。其中很多应用程序都是开发者们在学习Ruby和Rails的过程中写就的,代码质量堪虞,却已经运行于生产环境之中。\这些Web应用程序的规模数年来不断猛增,由于代码行数不断增加,它们已经变得臃肿,难以维护。这是很多开发者们不得不面对的情况。而且,他们几乎不知道从何下手。\一本新近出版的书能够帮助开发者解决这类问题,这本书叫做Ra...

cpongo5 161

重构TekPub——从ASP.NET MVC框架迁移到Ruby on Rails

TekPub是一个面向开发人员的站点,致力于为开发人员提供一系列主题的在线培训,主题范围非常广泛,从微软的O/R Mapping框架Microsoft Entity Framework,到如何使用Ruby on Rails技术编写自己的日志引擎等内容都有涉及。该网站是由前微软员工Rob Conery与Lounge的老板James Avery创立的。\\TekPub是个很有趣的学习案例,公司开始时使...

cpongo5 254

正交匹配追踪算法(OMP):正交匹配追踪算法(OMP)是一种贪婪的压缩感知恢复算法。-matlab开发

正交匹配追踪算法(OMP)是一种贪婪的压缩感知恢复算法,它在每次迭代中选择感知矩阵的最佳拟合列。 然后在由所有先前选择的列跨越的子空间中执行最小(LS) 优化。 这种方法不如 Basis 追踪算法准确,但计算复杂度较低。 Matlab 函数具有三个输入:稀疏度 K、测量向量 y 和传感矩阵 A。该函数的输出是恢复的稀疏向量 x。

上一篇: 语言问题的引发
下一篇: 软件深度挖掘(零)绝学无忧所引出的
kathywp
博客等级 码龄27年 12粉丝 22原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值