Articles of Windows

在Windows批处理中回覆UTF-8字符

我可以使用echo生成一个UTF-8文本文件吗? 例如,如果我想生成一个包含字符“è”的文件 echo "abcd ę" > out.txt (该batch file使用UTF-8编码) 结果是一个ANSI编码的文件,“é”字符被转换成“ê”。 我怎样才能说服“回声”生成一个UTF-8文件? 如果这是不可能的,那么我可以在创build文本文件后更改它的编码吗? gnuwin32软件包中是否有任何工具可以帮助我更改编码? 谢谢

启动后进程能否升级?

启动后,进程是否有可能获得pipe理员权限? 如果是这样,怎么样? 例子应该在C或C ++中。 编辑 – 例子也应该使用不受pipe理的代码。

Git说:关键difftool.vs2012.cmd的值不止一个

我今天跑了这个命令两次,第二次尝试引号,因为这个设置似乎没有效果: git config –global difftool.vs2012.cmd "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe" -diff "$LOCAL" "$REMOTE" 现在当我运行这个: git config –global –get difftool.vs2012.cmd 我得到这个: C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe error: More than one value for the key difftool.vs2012.cmd: C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe 注意错误。 运行git difftool -t vs2012仍然不起作用,但是我的问题是如何在Gitconfiguration文件中删除明显重复的键值对呢? 在input这个问题的时候,我再次运行了第一个命令,现在我似乎有三次了! 为什么它不断增加而不是覆盖? configuration文件在哪里,所以我可以使用记事本编辑它而不是这个可怕的,糟糕的命令行语法? 我认为Git将会是人们对此感到震惊的方式。 PS以下问题没有提及如何解决它。 关键的user.name Git有多个值

我如何知道在Windows下使用Java下的文件有哪些进程?

我们有一个使用Java编写的计划任务,在Windows平台上失败,因为有时需要删除的文件仍在使用中。 有没有办法从Java内部,我可以看到什么进程正在使用一个文件,并得到他们的信息? 我想我会补充说,如果有必要,我愿意使用JNA或JNI,并且我认为这将是。

多字节到宽string转换函数“mbstowcs”是否在传递string文字时使用源文件的编码?

附录我自己的试探性答案出现在问题的底部。 基于utf8everywhere.org上的build议,我将一个陈旧的VC6 C ++ / MFC项目转换为VS2013和Unicode。 一路上,我一直在研究Unicode,UTF-16,UCS-2,UTF-8,Unicode和UTF-8的标准库和STL支持(或者说,标准库的缺乏支持), ICU , Boost .Locale ,当然还有需要UTF-16 wchar的Windows SDK和MFC的API。 正如我一直在研究上述问题一样,一个问题仍然反复出现,我无法以澄清的方式回答我的满意。 考虑C库函数mbstowcs 。 该function具有以下签名: size_t mbstowcs (wchar_t* dest, const char* src, size_t max); 第二个参数src是(根据文档 )a Cstring与多字节字符进行解释。 多字节序列应从初始转换状态开始。 我的问题是关于这个多字节string 。 我的理解是,多字节string的编码可能因string而异,编码也不是标准规定的。 MSVC文档似乎没有为这个function指定一个特定的编码。 我现在的理解是,在Windows上,这个多字节string需要用活动语言环境的ANSI代码页进行编码。 但是我的清晰度在这一点上开始消失。 我一直在想,源代码文件本身的编码是否会影响mbstowcs的行为,至less在Windows上。 而且,我也对编译时发生的事情和上面的代码片段在运行时发生了什么感到困惑。 假设你有一个传递给mbstowcs的string ,如下所示: wchar_t dest[1024]; mbstowcs (dest, "Hello, world!", 1024); 假设这个代码是在Windows机器上编译的 。 假设源代码文件本身的代码页与编译器运行的机器上当前语言环境的代码页不同 。 编译器会考虑源代码文件的编码吗? 源代码文件的代码页是否与编译器运行的活动语言环境的代码页不同?是否会影响生成的二进制文件? 另一方面,也许我错了 […]

Emacs在进程缓冲区中显示^ M

目前,我有一个进程缓冲区是utf-8-auto (emacs modeline报告缓冲区为utf-8-auto-dos )与CRLF样式换行符。 当我通过process-send-region或process-send-string将多行文本写入缓冲区时,每行都加上^M后缀。 是什么让这个问题变得很奇怪:直接从进程写入进程缓冲区的文本不包含^M 源文本的来源似乎没有什么区别,事实上,即使是已经出现在进程缓冲区(不包含^M )的已标记和发送的多行区域,在发送时也会有这些区域。 ( 注意 ,process-send-region的源文本将始终来自Emacs缓冲区,process-send-string,当多行将从Windows剪贴板界面移至killring时,或者再次从Emacs缓冲区移至killring。 ) 我还应该补充说,传入缓冲区的文本是由一个after-change-functions钩子(根据input做一些着色)来parsing的,所以最后的手段我会在这个传入上做一个额外的正则regexp-replace-in-string文本作为钩函数的一部分,我想避免,因为它似乎是错误的 ,但我会添加它作为一个hacky的解决scheme,如果没有别的作品。 附录 我更新了缓冲区的编码设置,并使用utf-8-dos而不是utf-8-auto , ^M消失。 所以在我的应用程序的缓冲区设置部分,我做了… (switch-to-buffer "sock-buffer") (set-process-coding-system (get-process sock-process) 'utf-8-dos 'utf-8-dos) (set-buffer-file-coding-system 'utf-8-dos nil) (set-buffer-process-coding-system 'utf-8-dos 'utf-8-dos) 然后减less到只是… (switch-to-buffer "sock-buffer") (set-buffer-process-coding-system 'utf-8-dos 'utf-8-dos) 一切正常。

打电话给_freea真的有必要?

我正在用DevStudio在Windows上开发,在C / C ++非托pipe。 我想分配一些内存堆栈而不是堆,因为我不想处理手动释放内存(我知道智能指针和所有这些东西。我有一个非常具体的内存分配的情况下,我需要处理),类似于使用A2W()和W2A()macros。 _alloca是这样做的,但是已经被弃用了。 build议使用malloca来代替。 但_malloca文档说,___freea的调用是_malloca的每次调用必需的。 然后它打败了我使用_malloca的目的,我将使用malloc或new。 任何人都知道,如果我不能在没有泄漏的情况下调用_freea,以及内部的影响是什么? 否则,我最终只会使用已弃用的_alloca函数。

如何在WinXP下获得精确的1ms定时器刻度

我试图每1毫秒调用一个函数。 问题是,我喜欢用windows做这个。 所以我尝试了multimediatimer API。 Multimediatimer API 资源 idTimer = timeSetEvent( 1, 0, TimerProc, 0, TIME_PERIODIC|TIME_CALLBACK_FUNCTION ); 我的结果是,大部分时间1毫秒是好的,但有时我得到了双倍的时间。 看到1.95ms左右的小颠簸multimediatimerHistogram http://img.zgserver.com/c%2B%2B/www.freeimagehosting.net 我的第一个想法是,也许我的方法运行时间太长。 但是我已经测量过了,事实并非如此。 排队计时器API 我的下一个尝试是使用queud定时器API hTimerQueue = CreateTimerQueue(); if(hTimerQueue == NULL) { printf("Error creating queue: 0x%x\n", GetLastError()); } BOOL res = CreateTimerQueueTimer( &hTimer, hTimerQueue, TimerProc, NULL, 0, 1, // 1ms WT_EXECUTEDEFAULT); 但结果并不如预期。 现在我大部分时间都是2 ms周期。 queuedTimer http://img.zgserver.com/c%2B%2B/www.freeimagehosting.net 测量 […]

如果超过10个,将删除最新的文件夹的batch file

我想创build一个batch file(.bat),如果文件夹超过10个,可以删除文件夹中最新的文件夹。 如果这是目录树: \My Folders\ … \Old Videos\ (Created 2 Hours Ago) … \Files\ (Created Last Month) … \Pics\ (Created Last Week) … \Powerpoints\ (Created Yesterday) … \Videos\ (Created Several Days Ago) … \Old Pics\ (Created Yesterday) … \Movies\ (Created Yesterday) … \Games\ (Created Yesterday) … \Old Files\ (Created Last Month) … \Downloads\ (Created Two […]

任何可用于包装32位/ 64位可执行文件的工具?

我非常喜欢SysInternals工具(例如Process Explorer)处理64位兼容性的方式。 它看起来像32位可执行文件中embedded64位版本,并在必要时提取它。 我想要一个自动化的工具 – 即采取32位和64位可执行文件,以某种方式将它们打包在一起,并插入存根代码根据运行的平台启动正确的可执行文件。 在我开始推出自己的产品之前,有没有人知道这个已经存在的东西?