V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ysc3839  ›  全部回复第 1 页 / 共 578 页
回复总数  11547
1  2  3  4  5  6  7  8  9  10 ... 578  
10 小时 55 分钟前
回复了 Yukisama 创建的主题 分享创造 做了一个移动端的 ePub 和 mobi 的阅读器
@rainrdx 转换吧。其他很多正版平台下载下来的是加密的 epub ,要用 calibre 配合 NoDRM 等工具解密,也算是要转换了。
@drymonfidelia 异常情况没必要讨论概率,有可能只是碰巧没问题而已
11 小时 31 分钟前
回复了 aqtata 创建的主题 C++ 这种情况如何消除几百个 if/else
@bluearc @abc612008
去请教了一下群友,成功通过 Stateful Template Meta Programming (STMP) 实现了仅在模板特化时声明一次取值,后续自动根据所有可能的取值生成代码:
https://godbolt.org/z/GqY7ozrh7

代码基于 https://ykiko.me/zh-cn/articles/646812253/ 该文章修改,未进行优化,仅仅是展示可行性。
这代码说多不多、说少不少,感觉并不是非常优雅,看情况选择是否使用吧。
gcc 及 msvc 都可用,gcc 会报 warning ,msvc 不会。
12 小时 28 分钟前
回复了 LnTrx 创建的主题 Android 评小米 Bootloader 解锁进一步收紧
有小米国际版解锁的情况吗?现在是不是还是不放出解锁名额?
不是大小核的问题,Win10 最新版内核已经支持大小核 (LTSC 2021 如何未知),只是调度逻辑有一些问题。
查了下 MICROCODE_REVISION_MISMATCH 大概是 BIOS 的问题,更新 CPU 微码的时候只给部分核心更新了,没有全部更新。
最后建议说出该小主机的品牌型号,避雷。
12 小时 34 分钟前
回复了 Wxh16144 创建的主题 程序员 一个奇淫技巧实现的短网址
都用网页跳转了,完全可以把列表写进网页里。
实际上建议用 Vercel 或者 Firebase Function 等 Serverless 服务来跳转,也是直接把链接写进脚本里即可。
12 小时 51 分钟前
回复了 aqtata 创建的主题 C++ 这种情况如何消除几百个 if/else
@abc612008 手动写 if else 也是一个个试,你去掉 test 中的 printf ,看编译后的代码,和手写 if else 是一致的。
12 小时 53 分钟前
回复了 AE86Janus 创建的主题 程序员 请教软件加密相关问题,求大佬指点
那些加密狗基本也是类似逻辑,核心功能都是硬件内私钥不可读取。相比其他通用硬件密钥可能加入了一些锁定功能,比如说需要密码才可以生成新私钥,以及给你封装好了一套 SDK 。
上述方案都不涉及软件加壳,加壳属于别的领域。
12 小时 56 分钟前
回复了 AE86Janus 创建的主题 程序员 请教软件加密相关问题,求大佬指点
找不可导出的非对称硬件密钥大概可以实现,类似 https 二级证书那种感觉,你持有根证书私钥,公钥内置到软件里,硬件里生成一个不可导出的私钥,用根证书对硬件上的密钥进行签名。验证的流程就类似 https 验证服务器证书的流程,用根证书的公钥去验证硬件密钥发来的证书公钥,根证书私钥保密,别人签发不了新的证书,同时硬件密钥保证证书私钥不可读取,也就解决了复制的问题。
14 小时 4 分钟前
回复了 reDesign 创建的主题 澳门 报了个去澳门的团,感觉有点奇怪
是进了澳门也有车坐吗?
17 小时 52 分钟前
回复了 LemonedQ 创建的主题 Windows 关于 win11 的 win+space 语言切换
这种不跟手的设计,我估计又是学 macOS 的,印象中 macOS 切输入法也是要按一会才显示。
1 天前
回复了 aqtata 创建的主题 C++ 这种情况如何消除几百个 if/else
@bluearc @abc612008
不对,模板可以解决,需要手动把所有可能的取值写出来,例如:
test<0x1f0, 0x1f1, 0x1f2>(i);

如果能接受非标准扩展的话,有种办法可以把取值加到宏列表里:
#include <cstdio>
#include <cstdlib>

template<int N>
void func();

template<typename T = void>
void test(int n)
{
puts("test() failed!");
}

template<int N, int... ints>
void test(int n)
{
printf("test<%i>(%i)\n", N, n);
if (n == N) {
func<N>();
} else {
test<ints...>(n);
}
}

#define PUSHVAL _Pragma("push_macro(\"VALUES\")")
#define POPVAL _Pragma("pop_macro(\"VALUES\")")

#define VALUES 2
template<>
void func<2>()
{
puts("func<2>()");
}

PUSHVAL
#undef VALUES
#define VALUES POPVAL VALUES, 3
template<>
void func<3>()
{
puts("func<3>()");
}

PUSHVAL
#undef VALUES
#define VALUES POPVAL VALUES, 5
template<>
void func<5>()
{
puts("func<5>()");
}

PUSHVAL
#undef VALUES
#define VALUES POPVAL VALUES, 7
template<>
void func<7>()
{
puts("func<7>()");
}

int main(int argc, char** argv)
{
if (argc != 2) {
printf("usage: %s <int>\n", argv[0]);
return 1;
}

int n = (int)strtoul(argv[1], nullptr, 0);
printf("n = %i\n", n);

test<VALUES>(n);
}

上述方法在 gcc 中有效,msvc 无效。
1 天前
回复了 aqtata 创建的主题 C++ 这种情况如何消除几百个 if/else
@bluearc @abc612008
是我搞错了,用这种方式还是得把可能的取值写出来,不然模板不会实例化,还是避免不了 if else 。
这么写只能让代码更直观,因为数值不是写在函数名内。
1 天前
回复了 aqtata 创建的主题 C++ 这种情况如何消除几百个 if/else
@abc612008 用 stringstream 解析确实可能是 GPT 写的,但是直接传参(非运行时,代码里写的是字符串字面量)再转成常量是可行的,constexpr 就可以。
那个脚本要用户自己去设置里填写的吧?怎么可能自动从种子里获取?感觉是别的地方被入侵了,比如说开启了 WebUI 没设置密码暴露到公网上了。
@kirieievk @zhouyin 汇丰 Mastercard 扣账卡就可以
2 天前
回复了 ssh 创建的主题 问与答 windows 平台有没有这样一款系统监控软件?
CPU 温度是最麻烦的,需要针对不同硬件适配
@KoreaFish 所以说有的时候你去香港开门槛反而更低
@yangyifan catch all 是能看到原始收件邮箱的
1  2  3  4  5  6  7  8  9  10 ... 578  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2615 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 61ms · UTC 05:00 · PVG 13:00 · LAX 21:00 · JFK 00:00
Developed with CodeLauncher
♥ Do have faith in what you're doing.