Articles of Windows

基于操作系统的C ++条件编译

我想用C ++编写一个包含系统调用的跨平台函数。 我可以检查哪些条件编译标志来确定正在编译代码的操作系统? 我主要对Windows和Linux感兴趣,使用Visual Studio和GCC。 我认为这应该是这样的: void SomeClass::SomeFunction() { // Other code #ifdef LINUX LinuxSystemCall(); #endif #ifdef WINDOWS WindowsSystemCall(); #endif // Other code }

试图模拟恒定的字节速率。 与time.sleep结果混淆

上下文 我在我的计算机上使用Windows 7(播放器)和我的大学计算机上的Linux(debian)(stream式传输),我使用ssh来控制它。 我试图通过阅读一个wave文件模拟一个麦克风的恒定字节速率,就好像有人在说话一样。 问题是字节率低于目标。 select32KB / s速率,捕获时间为0.020秒。 我使用time.sleep来实现模拟麦克风,以产生每个0.020秒的每个数据块。 但是所得到的速率是大约27KB / s,而不是32KB / s 问题 我决定在linux机器上testing多less准确的time.sleep,通过阅读这个问题来使用想法。 我做了两种testing。 1)忙碌的睡眠2)正常的睡眠 平均而言,从我得到的样本中可以看出,Linux机器的睡眠分辨率是4ms。 在窗户上它less于/等于1ms。 问题 什么可能会限制在Linux机器上的睡眠分辨率? (在Linux上)为什么忙碌睡眠与time.sleep具有相同的分辨率? 我怎样才能成功地模拟一个麦克风阅读波形文件? 码 import time def busy_sleep(t): s=time.time() while time.time() – s < t: pass e=time.time() return es def normal_sleep(t): s=time.time() time.sleep(t) e=time.time() return es def test(fun): f = lambda x: sum(fun(x) for […]

等到用户按下Cinput?

waitForEnter() { char enter; do { cin.get(enter); } while ( enter != '\n' ); } 它的工作,但并不总是。 在调用函数之前按下回车键时不起作用。

使Python脚本可以访问系统

有人能告诉我如何使我的脚本在任何目录中可调用? 我的脚本只是返回一个目录中的文件数量。 我希望它通过调用它在任何目录中工作,而不是先复制那里,然后键入python myscript.py 我正在使用Mac OS X,但有没有一种常见的方式来安装在Windows和Linux?

cygwin:无法确定挂载点

我一直在试图在Windows上运行.bat文件。 我试图build立Nss,但是当我运行.bat文件时,我收到以下内容: sh ../../build/cygwin-wrapper cl -Fonow.obj -c -W3 -nologo -GF -Gy -MD -O2 -UDEBUG -U_DEBUG -UWINNT -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_ VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" – DNDEBUG=1 -DXP_PC=1 -DWIN32=1 -D_CRT_SECURE_NO_WARNINGS=1 -D_CRT_NONSTDC_NO_WARN INGS=1 -DWIN95=1 -D_PR_GLOBAL_THREADS_ONLY=1 -D_AMD64_=1 -DFORCE_PR_LOG "/c/Pi dginBuild/win32/nss/nspr/WIN954.0_OPT.OBJ/config/../../config/now.c" /usr/bin/mount: /etc/fstab.conf: configuration file not found Can't find file Cannot determine cygwin mount points. Exiting make[2]: *** [now.obj] Error […]

堆栈走过一个debugging过程

我打开一个进程(用C ++ / Windows)使用 if( CreateProcessA( NULL, // No module name (use command line) (LPSTR)path, //argv[1], // Command line NULL, // Process handle not inheritable NULL, // Thread handle not inheritable FALSE, // Set handle inheritance to FALSE creationFlags, // No creation flags NULL, // Use parent's environment block NULL, // Use parent's starting directory […]

错误MSB3147:找不到所需的文件“setup.bin”发布到本地失败

在网上冲浪和讨论这个问题之后 ,我终于问了一个关于旧错误的新问题。 我在Windows 10上使用Visual Studio Enterprise 2015。 这个问题和答案是从2011年MSBuild:错误MSB3147:无法find所需的文件“setup.bin” 。 这个问题和接受的答案是在2012年写的,其他答案是从2015年,有一个从2016年,这是没有帮助无法find所需的文件“setup.bin” 。 该项目的目标版本是4.0。 我正在运行一个只能从另一台本地机器运行的psl脚本。 我不断收到这个错误: C:\ Program Files \(x86)\ MSBuild \ 12.0 \ bin \ Microsoft.Common.CurrentVersion.targets(4769,5):错误MSB3147:找不到需要的文件'setup.bin' SRC \ XXX \引擎”。 [C:\ dev \ xxx \ src \ xxx \ xxx.csproj]发布到本地失败 我已经尝试了每个答案的每个解决scheme。 唯一的作品是从这个答案 <BootstrapperEnabled>false</BootstrapperEnabled> 如果需要设置为true,那么这是一个问题。 我也在MSDN上跟着这个答案 。 这个博客 。 我添加了registry项: 我也注意到Windows 10内置了.NET框架,而且它错过了4.0。 我已经卸载了dotNetFx40_Full_setup.exe,并在Visual Studio上运行了修复程序,以便根据需要安装sdks。 这没有帮助。 我有一个MSBuild的exe文件应该是这样的 : […]

简单的用户反馈收集服务

简而言之:我正在寻找一个非常简单的(configuration/维护方面)解决scheme,这将允许通过互联网从我的应用程序/网站收集用户反馈/错误报告。 长: 现在,我有非常简单的Web应用程序编写使用ASP.NET MVC接收http http://localhost/feedback请求并将其保存为c:\temp\{guid}-feedback.txt 。 我使用UltiDev HttpVpn (顺便说一句,这是非常酷),这个网页暴露在互联网上,而不必把我的应用程序在DMZ。 我收集以下信息(通过应用程序中的反馈表单或网站的反馈页面):用户名,电子邮件,消息types(function请求,错误报告,评论),应用程序名称(硬编码发送反馈的应用程序)以及消息文本/评论。 关于电子邮件: 电子邮件不够好,因为在我的应用程序运行的大多数计算机上没有电子邮件客户端(同时,发送电子邮件需要太多的点击)。 关于JIRA:恕我直言JIRA是太重,我所需要的。 我可能是错的,因为我从来没有安装/configuration它自己。 它有一个http-post界面(所以我可以把我自己的接口)? .NET上的Windows解决scheme的首选 免费是一个要求

在没有窗口的Windows桌面上绘制OpenGL

我已经看到了这样的事情,我想知道这是否可能,说我运行我的应用程序,它会显示任何低于它的渲染。 所以基本上,在没有窗口的情况下在屏幕上渲染。 可能还是谎言? 注意:想要在windows和c ++上做到这一点。

用超时和捕捉输出叉subprocess

说我有一个像下面的函数,我如何捕获Process.spawn调用的输出? 如果超过指定的超时时间,我也应该能够终止进程。 请注意,该function也必须是跨平台的(Windows / Linux)。 def execute_with_timeout!(command) begin pid = Process.spawn(command) # How do I capture output of this process? status = Timeout::timeout(5) { Process.wait(pid) } rescue Timeout::Error Process.kill('KILL', pid) end end 谢谢。