摘要: Gradle 在进行 sync 的时候会出现 Caused by: org.gradle.internal.resolve.ModuleVersionResolveException: Could not resolve gradle:gradle:8.2. 查看异常信息发现 Gradle 无法下载 阅读全文
posted @ 2024-01-21 15:02 mkckr0 阅读(1655) 评论(2) 推荐(3) 编辑
摘要: UAC(User Account Control) 是 Windows 平台的用户权限控制。它可以让程序使用管理员权限执行某些操作。 静态 UAC 提权 静态 UAC 提权让程序一直运行在管理员权限下,只要在项目设置里把 "UAC Execution Level" 设置为 "requireAdmin 阅读全文
posted @ 2024-01-20 14:36 mkckr0 阅读(347) 评论(0) 推荐(4) 编辑
摘要: Jensen 不等式定义 若 \(f(x)\) 为区间 \(I\) 上的下凸函数,则对于任意 \(x_{i} \in I\) 和满足 \(\displaystyle\sum_{i=1}^{n} \lambda_{i} = 1\) 的 \(\lambda_{i} \gt 0 \left( i = 1, 阅读全文
posted @ 2023-12-12 11:22 mkckr0 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 复制 init.gradle.kts 文件到 Windows 的 %USERPROFILE%/.gradle 或者 Linux 的 ~/.gradle 目录下。也可以直接复制文末的代码为 init.gradle.kts。 Gradle 不支持镜像源的直接设置,只能通过 maven() 方法设置一个新 阅读全文
posted @ 2023-09-19 13:30 mkckr0 阅读(3155) 评论(0) 推荐(2) 编辑
摘要: Android 虚拟机经常会出现画面闪烁,可以通过修改设置解决。 打开虚拟机之后,点击 “...” 按钮。按照下图改为 “D3D11”,冷重启虚拟机就好了。 阅读全文
posted @ 2023-02-16 23:10 mkckr0 阅读(586) 评论(0) 推荐(1) 编辑
摘要: std::string from_utf8(const std::string& src) { int n = MultiByteToWideChar(CP_UTF8, 0, src.c_str(), (int)src.size(), 0, 0); std::vector<wchar_t> wbuf 阅读全文
posted @ 2023-01-16 20:40 mkckr0 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 在 Lua 或者 Python 中可以使用多值赋值语句来交换两个数。例如:a, b = b, a。在 C++ 中有没有类似的操作? 先解析一下多值赋值的原理,a, b = b, a 等价于 t1, t2 = b, a a, b = t1, t2 可以看到多值赋值还是用到了中间变量,而且还是两个。想到 阅读全文
posted @ 2023-01-12 22:22 mkckr0 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 1. 直接创建 C++ 使用 new 创建二维数组最直接的方法就是 new T[M][N]。返回的指针类型是 T (*)[N],它是指向数组的指针,可以直接使用数组下标形式访问元素。释放内存直接使用delete[]。示例代码: #include <iostream> class A { public 阅读全文
posted @ 2023-01-11 23:49 mkckr0 阅读(3433) 评论(0) 推荐(0) 编辑
摘要: 利用 GetSystemTimes 可以获得 Windows 系统的 Idle Time、 Kernel Time 和 User Time。Idle Time 是系统空闲的时间,也就是系统没有利用的时间。Kernel Time 是系统在内核模式下的执行时间。User Time 是系统在用户模式下的执 阅读全文
posted @ 2023-01-08 21:12 mkckr0 阅读(1119) 评论(0) 推荐(2) 编辑
摘要: MINGW64 可以让 Windows 无缝使用 Linux 命令,但是路径参数会被转换为 Windows 风格。例如: $ ./adb shell ls /system ls: C:/Program: No such file or directory ls: Files/Git/system: 阅读全文
posted @ 2022-10-27 13:29 mkckr0 阅读(96) 评论(0) 推荐(0) 编辑
摘要: project build.gradle plugins { id "com.google.protobuf" version "0.9.1" apply false } module build.gradle android { sourceSets { main { proto { srcDir 阅读全文
posted @ 2022-10-25 14:35 mkckr0 阅读(231) 评论(0) 推荐(0) 编辑
摘要: project build.gradle plugins { id "com.google.protobuf" version "0.9.1" apply false } module build.gradle android { sourceSets { main { proto { srcDir 阅读全文
posted @ 2022-10-25 14:03 mkckr0 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 参考文档 COM Coding Practices Audio File Format Specifications Core Audio APIs Loopback Recording #include <iostream> #include <fstream> #include <vector> 阅读全文
posted @ 2022-10-23 15:28 mkckr0 阅读(510) 评论(0) 推荐(1) 编辑
摘要: 格力空调默认只有“上下扫风”和“不扫风”两种状态。可以用遥控器开启“定格扫风”,精细控制空调上下扫风的方向。 首先关闭空调,再同时按下“上下扫风”和“▲”按钮大约 2 秒,看到“上下扫风”的图标闪烁就可以松开按钮。然后开机,就可以使用定格扫风。 注意,这里“上下扫风”和“▲”需要同时按下,而不是先按 阅读全文
posted @ 2022-08-12 17:42 mkckr0 阅读(587) 评论(0) 推荐(0) 编辑
摘要: 之前一段时间偶然在 B 站上刷到了南京大学蒋炎岩(jyy)老师在直播操作系统网课。点进直播间看了一下发现这个老师实力非凡,上课从不照本宣科,而且旁征博引又不吝于亲自动手演示,于是点了关注。后来开始看其网课录播,其中一节的标题吸引了我,多处理器编程:从入门到放弃 (线程库;现代处理器和宽松内存模型)。 阅读全文
posted @ 2022-07-29 18:32 mkckr0 阅读(514) 评论(1) 推荐(0) 编辑
摘要: 今天看到一篇博客介绍使用 Lambda 表达式递归计算 n!。使用了 C++14 的 generic lambda,给 Lambda 表达式加了一个模板参数,在函数调用的时候将 Lambda 表达式作为参数传递给下一层函数。这种方法每次调用函数的时候都要比常规的函数多传一个参数。我想起两年前也用 L 阅读全文
posted @ 2022-07-01 20:19 mkckr0 阅读(1544) 评论(0) 推荐(0) 编辑
摘要: 刚刚看到一篇博客,说 stdbind 无法绑定正确的重载函数。这里的问题并不是 stdbind 能力不足,而是将函数名传递给 std::bind 时编译器无法取到这个函数的地址(也就是符号,编译器会先解析成符号,链接器再替换为地址),因为有多个重载函数都是这个名字。核心问题是无法通过函数名取到想要的 阅读全文
posted @ 2022-06-07 22:04 mkckr0 阅读(881) 评论(1) 推荐(3) 编辑
摘要: 1 与其它协程库使用对比 这个 C 协程库是云风(cloudwu) 写的,其接口风格与 Lua 协程类似,并且都是非对称 stackful 协程。这个是源代码中的示例: #include "coroutine.h" #include <stdio.h> struct args { int n; }; 阅读全文
posted @ 2022-06-06 19:13 mkckr0 阅读(1286) 评论(0) 推荐(1) 编辑
摘要: #include <boost/asio.hpp> #include <boost/asio/ssl.hpp> #include <boost/algorithm/string.hpp> #include <boost/lexical_cast.hpp> #define OPENSSL_NO_DEP 阅读全文
posted @ 2022-05-28 00:12 mkckr0 阅读(327) 评论(0) 推荐(0) 编辑
摘要: install(TARGETS app BUNDLE DESTINATION . LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) qt_generate_deploy_ 阅读全文
posted @ 2022-05-28 00:01 mkckr0 阅读(285) 评论(0) 推荐(0) 编辑
摘要: { "background": "#FFF2E2", "black": "#000000", "blue": "#0000CC", "brightBlack": "#666666", "brightBlue": "#3366CC", "brightCyan": "#669999", "brightG 阅读全文
posted @ 2022-05-16 16:07 mkckr0 阅读(445) 评论(0) 推荐(0) 编辑
摘要: 写文件有三种模式: 截断写,文件打开之后立即清空原有内容 附加写,文件打开之后不清空原有内容,每次只能在文件最后写入 覆盖写,文件打开之后不清空原有内容,可以在文件任意位置写入 例如:文件原有内容为 123456,在开始位置覆盖写入 abcd,最后文件内容为 abcd56。首先使用下面的代码进行尝试 阅读全文
posted @ 2022-05-05 12:02 mkckr0 阅读(4068) 评论(0) 推荐(0) 编辑
摘要: sudo rm /etc/issue.d/cockpit.issue sudo rm /etc/motd.d/cockpit 阅读全文
posted @ 2022-05-01 17:52 mkckr0 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 很多 C++ 方面的书籍都说明了虚析构的作用: 保证派生类的析构函数被调用,并且使析构顺序与构造函数相反 保证资源能够被正确释放 很久一段时间以来,我一直认为第 2 点仅仅指的是:当派生类使用 RAII 手法时,如果派生类的析构没有被调用,就会产生资源泄露。就像下面的代码: #include <io 阅读全文
posted @ 2022-04-30 22:06 mkckr0 阅读(386) 评论(1) 推荐(1) 编辑
摘要: C 语言的 longjmp 没有进行栈展开,而是直接跳转。从 longjmp 到 setjmp 之间的所有析构函数都没有调用,也就是 RAII 失效。 #include <setjmp.h> #include <iostream> jmp_buf buf; class A { public: A(i 阅读全文
posted @ 2022-04-22 11:05 mkckr0 阅读(39) 评论(0) 推荐(0) 编辑