V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  geelaw  ›  全部回复第 106 页 / 共 177 页
回复总数  3521
1 ... 102  103  104  105  106  107  108  109  110  111 ... 177  
2018-06-17 22:42:05 +08:00
回复了 mimzy 创建的主题 Python id(1) 和 id(2) 返回的内存地址为什么相差 32?
你不应该假设连续制造的两个对象的地址也是“接近”的。

后面 Only ... to 这句话是想告诉你如下事实:考虑 A 对象具有 B 字段,B 字段的值是(指向) C 对象(的引用),A 对象的 size 不非要大于 C 对象的 size —— C 对象的 size 不会算入 A 对象的 size。类比到 C 的话

typedef struct { void *member1, *member2, *member3, *member4; } c_t;
typedef struct { c_t *b; } a_t;

则 sizeof(a_t) 是 sizeof(void *) 而不是 sizeof(void *) + sizeof(c_t)。
2018-06-17 22:37:38 +08:00
回复了 lzz2394677796 创建的主题 分享创造 WheelKey.exe,自用,就是发送虚拟按键一个功能!
好像说自己提供的文件没有病毒是没有意义的一句话。

病毒并不会说自己是病毒。会说自己是病毒的,是病毒样本文件。
2018-06-17 16:02:54 +08:00
回复了 Rheinmetal 创建的主题 分享创造 终极护眼方法-使用屏幕阅读器访问 PC 或移动设备
欢迎来到 Windows 2000,你想说的是讲述人么?
2018-06-16 10:36:51 +08:00
回复了 okwork 创建的主题 问与答 MS Word 文件的全文搜索解决方案,有什么好用的吗?
把共享文件夹加入索引就可以搜索了吧
2018-06-16 10:04:43 +08:00
回复了 songdg 创建的主题 Python 如何在循环中使用动态变量
你要找的是不是:数组
2018-06-15 20:59:56 +08:00
回复了 metorm 创建的主题 分享创造 HTD:另辟蹊径,一劳永逸解决各种花式 Word 报表需求
COM 怎么会很麻烦? VBA 和 VBS 都没用过吗?

我看了一下您的代码,就是用 Qt 帮你做的 IDispatch 包装接口去调用,使用 VBS、JScript 和 VBA 明显更简单。而且怎么也算不上 portable,毕竟你需要 host 有 Word 才行,如果你有 Word,不如直接 VBA、VBS、JScript 或者 PowerShell。

通常来说企业内的 solution 会直接从数据源( Excel )使用 VBA 生成可打印结果,可以参考何明科先生的知乎回答。
2018-06-15 19:14:34 +08:00
回复了 mingmingxiu 创建的主题 问与答 win10 系统怎么老是弹出来这东西呀 求大神指教
这个并不是 Windows 弹出来的,检查一下你的启动项
2018-06-15 18:18:58 +08:00
回复了 OpenJerry 创建的主题 问与答 程序员如何 0 基础入门英语?
那就从你能考 85 分的年级开始学起呗
2018-06-15 18:17:16 +08:00
回复了 raysync 创建的主题 问与答 上 T 的大文件,当你跨国传输时,遇到了哪些问题?
硬盘卡在海关
App 更新不都是免费的啊……所以没有一个 universal 的自动更新 app 的功能。

App 可以自己实现更新的功能,或者使用 Microsoft Store 分发。
2018-06-11 13:49:17 +08:00
回复了 vevlins 创建的主题 前端开发 前端框架的性能什么的真的有意义吗?
@dorentus #5 这个说法的根据是啥?从逻辑思考这个想法不是很站得住脚,即使 Google 自己的 JavaScript 引擎解决了 Gmail 的性能问题,如果 Gmail 自己不改善代码,它在其他的浏览器上的性能也没有保障——但是 Gmail 网页版本来就是要让所有的人都能轻松访问 Gmail,如果限制在 Google 的浏览器上,何不推出 Google 自己的客户端来访问(反正,都是 Google 的软件,不差这一个)?
我没有理解您在 C++ 里的操作和 cmd/powershell 有什么关系。

如果你想让你的 C++ 代码使用 UTF-8 编码,用 cl /utf-8 编译。

如果你希望控制台接受一个特定编码的字节流,使用 chcp <code-page>。对于 cmd,当你不用重定向、管道的时候,程序向标准输出、标准错误输出的字节流会原样进入控制台。

对于 PowerShell 情况会比较复杂,因为是面向对象的 shell。分为以下两种情况:

- 如果是 <exe-name> <arg1> <arg2> ... 的形式且没有任何重定向、管道,则程序向标准输出、标准错误输出的字节流原样进入控制台;
- 如果命令是表达式的一部分,则 PowerShell 会猜测标准输出的编码,尝试把它变成一个字符串。

在后一种情况下,如果再把字符串 Write-Host 输出(或者 Write-Object 但是没有用管道、重定向),则 PowerShell 会输出那个字符串—— PowerShell 使用的是 Unicode,所以输出和编码没有关系。

下面的图展示了几种情况。

代码:UTF-8 编码的。

http://wx1.sinaimg.cn/large/8e7092e9ly1fs1v19nh6qj20ij0aw3yx.jpg

情况 1:C++ 程序输出的是 GBK,控制台代码页是 UTF-8,使用 cmd。这时程序输出的字节流直接进入控制台,也就是说会按照 UTF-8 解读 GBK 编码的文本,会是乱码。

http://wx1.sinaimg.cn/large/8e7092e9ly1fs1v42wwrej21kw0fn3zv.jpg

情况 2:C++ 程序输出的是 GBK,控制台的代码页是 GBK,使用 cmd。这时程序输出的字节流直接进入控制台,也就是说会按照 GBK 解读 GBK 编码的文本,会是正确的字符。

http://wx4.sinaimg.cn/large/8e7092e9ly1fs1v4kjruvj21kw0gkta5.jpg

情况 3:C++ 程序输出的是 GBK,控制台的代码页是 UTF-8,使用 cmd。这时程序输出的字节流直接进入控制台,也就是说会按照 GBK 解读 UTF-8 编码的文本,会是另外一种乱码。

http://wx4.sinaimg.cn/large/8e7092e9ly1fs1v4zhudfj21kw0g5mym.jpg

情况 4:C++ 程序输出的是 UTF-8,控制台的代码页是 UTF-8,使用 cmd。这时程序输出的字节流直接进入控制台,也就是说会按照 UTF-8 解读 UTF-8 编码的文本,会是正确的字符。

http://wx2.sinaimg.cn/large/8e7092e9ly1fs1v5ag794j21kw0g50u6.jpg

情况 5、6:C++ 程序输出的是 UTF-8,控制台的代码页是 UTF-8,当前系统 locale 是 2052 (就是 zh-CN,对应默认代码页 936 = GBK ),使用 PowerShell。分别用 外部程序是表达式的一部分 和 单纯启动外部程序 的语法。前者,PowerShell 需要把程序的标准输出变成字符串,程序不是 Unicode 输出,因此 PowerShell 决定使用默认代码页,也就是 936,去解读字节流( UTF-8 ),得到的字符串(存储为 Unicode )是乱码 [相当于 字符串 = MultiByteToUnicode(标准输出, locale 对应的编码)] ,再输出这个字符串,自然也是乱码;后者,PowerShell 让程序的标准输出字节流原样直接进入自己的控制台,因此是 UTF-8 解读 UTF-8,看到的是正确的字符。

http://wx4.sinaimg.cn/large/8e7092e9ly1fs1v6o75ssj20w709y0to.jpg

情况 7、8:C++ 程序输出的是 UTF-8,控制台的代码页是 GBK,系统默认代码页 GBK,PowerShell,分别用 表达式 和 单纯启动 语法。无论怎样都会用 GBK 解读 UTF-8,因此是一样的乱码。

http://wx3.sinaimg.cn/large/8e7092e9ly1fs1v70z3r3j20uw0a7t9n.jpg


总结:假设系统 locale 设置的默认代码页是 CPSysLocale,则默认控制台的代码页也是 CPSysLocale,但你可以用 chcp 改变,假设你改成了 CPConsole,最后,假设你的 C++ 程序输出多字节字符串,使用的代码页是 CPProg。

如果用 cmd + 重定向 /管道,则你的输出按原字节进入重定向 /管道目标,和 console 没有关系。

如果用 cmd 输出到控制台,你的输出按原字节进入控制台,CPProg 输出将按照 CPConsole 被解读并显示。

如果用 PowerShell 表达式语法,则你的 CPProg 输出将被 PowerShell 猜测编码,如果它没有 BOM,则会按照 CPSysLocale 解读,变换为 .NET 字符串;再次输出时,输出的是变换后的字符串,因为字符串已经是 Unicode,不会涉及到 CPConsole ;结果就是:CPProg 按照 CPSysLocale 解读。

如果用 PowerShell 单纯启动语法,你的输出按原字节进入控制台,CPProg 输出将按照 CPConsole 被解读并显示。

注意:自 1803 起,你可以设置 UTF-8 (65001) 为 locale 设置的默认代码页,但在 1709 及更早,不行。此外,PowerShell 的表达式语法包括任何有重定向的情况,而且 PowerShell 会帮你分行,但再次输出的时候原来的行尾信息已经丢失,因此用 PowerShell 直接调用外部命令是一个非常非常糟糕的做法。


安利:如果你要小心地操作文件编码,请使用 cmd 重定向+自己转换编码;或者你可以用我的 Use-RawPipeline PowerShell module。见这里: https://github.com/GeeLaw/PowerShellThingies/tree/master/modules/Use-RawPipeline
2018-06-06 20:04:38 +08:00
回复了 okwork 创建的主题 问与答 win10 用什么快捷键方式,可以直接切换到指定的桌面?
@geelaw #15 我删除了代码,用 UI 模拟输入是很困难的,因为 explorer 需要时间反应。

现在提出一个新的做法:启动一个程序,该程序打开数个窗口,用户分别把它们放在不同的虚拟桌面上,然后该程序监听热键,并用 SetForegroundWindow 把那个虚拟桌面上的那个窗口激活,这样就可以切换到那个虚拟桌面了。
2018-06-06 19:31:17 +08:00
回复了 okwork 创建的主题 问与答 win10 用什么快捷键方式,可以直接切换到指定的桌面?
@hljjhb #11 这个软件的方法很不好,看了一下是用 https://github.com/Ciantic/VirtualDesktopAccessor 实现的。

后面那个东西 tamper with 虚拟桌面的内部接口,虽然 COM 接口以其稳定性著称,但是 IVirtualDesktopManagerInternal 的 IID 从来没有出现在 MSDN 的文档上,所以理论上可以随时消失掉,这样写的程序随时可能在 Windows 10 的更新里面坏掉。

然后用户就会尖叫:为什么 Windows 兼容性这么差?

总结:请使用被文档化的方法,避免你的程序在下一次更新之后突然坏掉。正确的做法是这样的:

1. 注册全局热键,接收消息;
2. 使用模拟 Ctrl+Windows+Left/Right 来切换虚拟桌面。

随手写了一段:

https://gist.github.com/GeeLaw/b7972135b556d994560c798491371146
2018-06-06 18:40:14 +08:00
回复了 Muchisan 创建的主题 GitHub Github 被 Microsoft 收购了,忽觉讽刺……
@lxy #24

关于 GVFS,我突然想不正经地吐槽一下 Linux 世界难道不是大小写敏感的吗? GVFS 和 GVfs 明明不一样啊。此外,微软已经在考虑改名,并在 GitHub 上征集思路。

关于 IF_MS_BUYS_GITHUB_IMMA_OUT,你可以阅读 issue 8,argue 是微软审查的论据似乎并不是很 solid。

最后,solidot/slashdot 上面 troll 太多。
2018-06-06 11:53:35 +08:00
回复了 ranwu 创建的主题 程序员 传说中的全栈技术检查列表
So scattered
2018-06-05 21:55:26 +08:00
回复了 814084764 创建的主题 问与答 有没有那种中英文对照 [编辑/看] 的网址、工具、软件?
我想不到有什么 universal 的解决方法。

比如可以先告诉我们,想看的是什么样的两篇文章,是 HTML、文本还是 Word 文档?

是想要编辑还是想要阅读?两篇文章之间如何标注对应关系(很明显中文和英文的一段可以不一样长)?
2018-06-05 18:58:06 +08:00
回复了 sulinehk 创建的主题 问与答 C 程序设计语言 235 页 gmtime
gmtime 的历史意义是 Greenwich Mean Time,虽然这个函数现在的“正名”应该是 cutime, Corrdinated Universal Time.
2018-06-05 08:35:42 +08:00
回复了 thrall 创建的主题 全球工单系统 被短信供应商电话威胁了
总结一下:

销售缠人
楼主用了服务不接电话微信不给钱
在工单节点发的只是牢骚,没有包括如下重要信息:谁应该接工单,应该怎么解决
1 ... 102  103  104  105  106  107  108  109  110  111 ... 177  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3262 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 52ms · UTC 13:08 · PVG 21:08 · LAX 05:08 · JFK 08:08
Developed with CodeLauncher
♥ Do have faith in what you're doing.