主页

windows 下安装 gtk

按照官方网站说明,有两种方法再windows安装GTK。 MSYS2。MSYS2为windows提供了类似UNIX的开发环境。 gvsbuild。此方法基于gvsbuild库,该库提供了生成GTK技术栈的的脚本,可输出由Visio Studio和Meson项目使用的库和工具。 本文主要介绍gvsbuild方法。 安装说明 由于国内网络问题,按照gvsbuild中提供的安装说明需要依赖Choco包管理器,但在实际操作中将遇到各种网络问题。所以我才用纯粹手动安装所需库。 安装Git 访问Git官网,下载最新版本并安装即可。 安装MSYS2 访问MSYS2官网,下载最新版本并安装即可。 安装Visual Studio 2022 ...

阅读更多

C++ error C2040 间接寻址级别不同

编译时可能会遇到如下信息: # [C++]error C2040: 间接寻址级别不同 该问题看起来比较奇怪,实际上是因为auto&变量重定义导致的。 执行下面的代码: int main() { int a = 1; int b = 1; auto& b = a; } 可以获得提示信息:error C2040: “b”:“auto &”与“int”的间接寻址级别不同 该描述翻译过来就是:auto&定义的变量b,和前面定义过的变量b类型不同。

阅读更多

Jekyll移植到gitee

本文正在修改中… 由于之前工作比较忙,且旧的网站服务器总是出问题,索性直接关掉了。为了减少没必要的维护工作,现在开始着手使用Jeckll重新搭建网站。 与WordPress相比,Jeckll结构简单,便于维护。仅需克隆原始项目、简单配置即可。 github.io 最开始是在github上搭建的,几乎没有遇到什么问题 github.io站的库名必须为用户名.github.io github.io站,可以在库设置中的pages页面查看相关设置。 gitee.io 移植到gitee遇到几个问题 gitee的库默认为私有的,需要手动设置为开源。 gitee.io站的库名,必须为用户名 ...

阅读更多

pagefiles.sys所在盘缓慢导致系统卡顿

pagefiles.sys为虚拟内存的分页文件。 由于内存中的空余空间可能不是连续的,所以为了保证有连续可用的足够大的内存空间,系统会通过该文件进行数据交换。此外由于部分应用程序会使用到虚拟内存,所以不建议直接关闭。 那么在pagefiles.sys文件所在盘的速度及工作状况将会影响系统在交换内存是的速度,也是磁盘缓慢导致系统卡顿的主要原因。 如果发现在非系统盘有繁重工作时,出现系统卡顿,那通常是由于pagefiles.sys文件在那个盘导致的。可以通过修改虚拟内存 设置,解决卡顿问题。 虚拟内存设置 磁盘队列长度 磁盘队列长度是指磁盘读写任务的工作状况,长度可参考下表: 平均长度 说明 ...

阅读更多

Visual Studio C++ 内存对齐问题

使用VS C++ 默认项目模板生成的项目,通常包含Rlease/Debug两种配置。在默认设置下的两种配置编译出的Dll库的数据对齐方式不一样,可能接口在传递字符串、类时发生各种内存错误。 解决方法 那么如何在Debug下与Release下使用相同的内存对齐方式?最简单的解决方案如下: 打开项目设置。 C/C++ > 预处理器 > 预处理定义,去掉_Debug宏。 C/C++ > 代码生成 > 运行库,选择 多线程DLL(/MD)。 内存未对齐的常见错误表现 传递字符串数据时,直接出现内存错误。 传递数据结构或类时,出现数据变化。

阅读更多

ObjectARX开发问题汇总

奇怪问题 COPY命令 copy命令的实现,看起来是依赖实体的deepclone 接口,但是与开发者直接deepClone又有所区别。在copy命令调用过程中,deepclone函数内向块表添加克隆后的的对象后,deepclone结束后无法子实体以及目标块表是无法正确触发反应器的(大概还有很多类型的反应器也都无法触发)。 可在命令反应器,命令结束时,重新处理子实体与父实体关系。 AcDbText::adjustAlignment执行缓慢 如果AcDbText使用的字体无效,则会导致该接口执行缓慢。 已知受影响的还有getGeomExtents接口。 猜测还有其他接口会受影响,待验证。 该问题在AutoCAD2022之前版本均存在。

阅读更多

引擎开发术语

基础术语 AABB (Axis-Aligned Bounding Box),轴对称齐包围盒。 BVH (Bounding Volume Hierarchy),层次包围盒 Cull,剔除 Blend,混合 Conservative,保守? Stencil,模具 Fence,是什么呢? cmdPool,命令池。通常cpu向其添加命令,Gpu从其获取命令,这是Cpu和Gpu同步的一种手段 Resource Barrir 资源屏障。通知图形驱动程序驱动程序可能需要同步对存储资源的内存的多次访问的情况。 ...

阅读更多

学习 The-Forge 笔记

独立程序 创建独立程序需要执行以下步骤: 从IApp接口类派生自定义应用类。IApp类定义了程序主入口、创建窗体、初始化绘制信息、更新信息、退出等接口。 使用DEFINE_APPLICATION_MAIN宏注册自定义应用类。 #define DEFINE_APPLICATION_MAIN(appClass) \ int IApp::argc; \ const char** IApp::argv; \ e...

阅读更多