songfei

宋飞

软件开发工程师<br />业余无线电爱好者

查看 Windows 中的 dll 依赖

在 Windows 系统中, dll 扮演了非常重要的角色,通过 dll 的动态调用, 可以实现代码模块化,动态加载等。算是 Windows 系统的基石。 如何查看 exe 或者 dll 依赖了哪些其他的 dll 呢? 静态查看通过 Dependencies 这个工具,可以查看到 exe 或者 dll 静态依赖的 dll 文件。 微软官方的工具,已静止开发,仅支持到 Win8, Win10 已经无法使用。 次工具是网友制作并开源的,项目Github地址 启动后窗口如下, 主要分为3个部分。 分别是 dll 依赖树、dll 引用的方法、 dll 导出的方法。 动态查看上面的工

UE 日志配置

UE 在 Developement 和 Debug 模式 会输出日志,Shipping 不会。 输出的日志文件保存在: [Platform]\[ProjectName]\Saved\Logs 下。 可以通过修改 Engine.ini 配置来修改日志输出的配置。 配置文件的相关规则见另一篇笔记 《UE 引擎配置文件》 配置项如下: 1 2 3 4 [LogFiles] PurgeLogsDays=30 MaxLogFilesOnDisk=300 LogTimes=Local 其中参数: PurgeLogsDays保留日志的最长天数。 MaxLogFilesOnDisk最多文件数。 LogTimesLogTimes 表示输出的时间格式: [time][frame mod 1000] 可选值有: None : 不显示时间 UTC : 显示 UTC 时间(默认值), 例:[2015.11.25

UE 引擎配置文件

UE 引擎里有很多配置项, 放到的不同的目录里的不同文件,分别对应不同的生效范围。 范围有: 引擎目录 Engine : 对应所有项目 UE 项目目录 [ProjectDirectory] : 对应所在项目 操作系统 [Platform] : 对应不同的操作系统平台 引擎会依次加载这些配置文件,后面的文件的同名选项会覆盖前面的文件。 顺序如下: Engine/Config/Base.ini (通常为空) Engine/Config/BaseEngine.ini Engine/Config/[Platform]/base[Platform]Engine.ini [ProjectDirectory]/Config/DefaultEngine.ini Engine/Config/[Platform]/[Platform]Engine.ini [ProjectDirectory]/Config/[Platform]/[Platform]Engine.ini

UE 解析启动命令行参数

解析不带参数的 1 2 3 const TCHAR* CmdLineParam = FCommandLine::Get(); bool value = FParse::Param(CmdLineParam, TEXT("XXXXXXX")); 带参数的 1 2 3 4 const TCHAR* CmdLineParam = FCommandLine::Get(); FString XValue; FParse::Value(CmdLineParam, TEXT("-XXXXXXX="), XValue);

智云对焦马达硬件拆解

咸鱼 100块RMB 搞了一个对焦马达, 是智云的铠甲系列, 型号为:CMF-04,应该是第二代的产品了。 产品介绍 使用方式是,通过固定支架固定在相机上,有个齿轮可以控制镜头对焦环。 拆解打算进行改造,先进行了拆解,全家福: CNC 的外壳,无刷电机, 还有2块电路板。 主板正面 主板正面是一颗 兆易的 GD32F330 MCU,ARM Cortex M4,国产的 MCU。 负责电机驱动和编码器的控制。 GD32F330 数据手册 GD32F330 使用手册 USB TypeC 接口只是借用了硬件连接器, 实际传输

Runbo K1 磁吸接口

Runbo 对讲机防水设计,没有使用通用的 USB 接口和耳麦接口,而使用了自定义的 6pin 磁吸接口。 针脚定义: 连接电脑, 只需要连接 GND, D+, D-, VBUS 即可。 USB-OTG连接,USB_ID 连接 GND。

短波常用频率

国内比较热闹的短波频点: 7.050 MHZ 模式:LSB单边带 主要是早上和晚上很热闹,传播好的时候,比本地的中继台信号还要好,国内HAM默认的公用呼叫频率,大家常在7.050呼叫到对方后,都喜欢转到7.055、7.060、7.065、7.070、7.080做通联QSO。 14.270 MHZ 模式:USB单边带 主要是白天很热闹,传播好的时候,比本地的中继台信号还要好,国内HAM默认的公用呼叫频率,大家常在14.270呼叫到对方后,都

关于我

基本信息我叫宋飞,80后,已婚,现定居北京。 工作从大学毕业,就一直在某大厂做程序员,技术做的比较杂,做过 iOS,Android,Web,小程序和 Flutter, 现在在做 UnrealEngine 相关的开发工作。 虽然我不喜欢全栈工程师这个称呼,样样精通等于样样稀松,但这些年来,基本大前端,后台,嵌入式都有涉及,谈不上精通。 在 iOS 和 Flutter 专注的时间比较长,算是资深吧。 刚刚换了全新的方向,做 3D 相关的开发,0 基础学习虚幻引擎中 … 兴趣爱

留言板

欢迎在这里留言!任何问题都可以在这里留言,我会及时回复的!

Dart 多线程:Isolate

Dart 被设计成为单线程、异步的语言。 尤其在 Flutter 当中,大部分的 Dart 代码都执行在一个线程,应该叫一个 Isolate 里面。 单线程带来了很多好处,不用考虑数据被同时访问,不用加锁,也就有没有了死锁;也给内存的垃圾回收带来了方便。 Isolate 对象 Isolate 代表了 Dart 执行的上下文,所有的 Dart 代码都运行在其中。 Dart 代码只能访问到当前 Isolate 的类和变量,不同 Isolate 之间内存是隔离的,只能通过 Ports 进行通讯。 每一个 Isolate 都有独立的消息循环和垃圾回收。 Isolate 可以被其他的 Isolate 控制,比如暂

逆向 APK 文件

解包工具 apktoolapk 包本身是个 zip 包,包里面的 xml 资源等都转换为二进制数据无法阅读。 使用 apktool 能对 apk 进行解包,如果有修改后,还能重新打包。 工具下载:https://apktool.org/ 使用命令: 1 apktool d xxx.apk 解包命令可以加额外参数: -f :如果目标文件夹已存在,则强制删除现有文件夹(默认如果目标文件夹已存在,则解码失败) -o :指定解码目标文件夹的名称(默认使用 APK 文件的名字来命名目标文件夹) -s :不反编译dex文件,也就是说 classes.dex

自制 YAESU FH-2 扩展键盘

我使用的 YAESU FT-991 电台可以扩展一个按键,实现录音和自动发送。 查了些资料,这个键盘的原理是不同按键串联了不同阻值的电阻,采用电阻分压原理, 给电台输入不同的电压,来区分按键。 实测没有按键按下的时候, 电压为 3.3v, 按下每个按键间隔 0.2v。 官方卖的是这样的: 原理图 其中每个按键串联了 2 个电阻, 电阻的阻值分别是: 电路板按客制化键盘的思路, 做了 2 块电路板: 实物发到工厂生产: 在某宝定制了键帽:
0%