草庐IT

do_some_long_calculation

全部标签

c++ - 重叠 I/O : some functions are still missing

我非常喜欢WindowsAPI中的一个东西是重叠I/O。我已经编写了数十个使用重叠I/O(用于套接字和文件)且线程数量有限的网络服务器。我也是一名驱动程序编写者,因此我非常了解重叠I/O是如何“在幕后”实现的。唯一一直困扰我的是一些API函数不支持重叠模式。例如,创建文件(即调用CreateFile)始终同步进行。这很遗憾,因为这些方法也可以支持重叠(异步)模式。例如,当创建(或打开)文件时-文件系统驱动程序收到IRP_MJ_CREATE请求,它可能(通常会)返回STATUS_PENDING.我的问题是:是否可以选择异步打开文件?(但请不要告诉我创建另一个线程来打开文件)。

c - 套接字阻塞 :( How do i get out?

这是我从microsoft中获取的服务器代码.下面是我的main,它需要运行voidimportant_code(bool);。在linux和windows上使用管道和套接字时,我总是遇到这个问题。我如何退出select()我什么时候想退出我的应用程序?假设important_code总是在套接字代码之后的同一个线程上执行。我该怎么做?我知道这是windows代码,但我在linux下也遇到了这个问题额外的测试代码:如果您在我的主函数中注释掉main2()并取消注释循环,您可以使用ctrl+c干净地退出。使用套接字代码,阻塞select阻止我这样做。我该如何解决这个问题?#pragmac

c# - 应用忙但没有响应 : how to check what it's doing?

我们有一个.NET应用程序。在某些特定机器上,应用程序不再响应。但是,在任务管理器中,该应用程序被列为“事件”(而不是“无响应”)。我们还可以在任务管理器中看到该进程一直使用10%的处理器。我们不知道它在做什么?有没有办法让我们看到正在调用什么代码或进程当前正在做什么(调用堆栈?)编辑:显然我们不能使用远程调试器,因为机器没有通过网络连接,不支持通过互联网进行调试。CPU-analyzer.exe程序看起来很棒,但我们无法让它工作?我们已经创建了一个转储文件并使用windb对其进行了分析,这是输出:............................................

C++:向上舍入 long 以适应 64kb

我想以64kbblock的形式读取数据。通常,实际需要的数据并不是这个大小,例如2760字节。我不确定是否有一个简单的计算可​​以用来读取64kb或它的倍数。我希望我能解释清楚。谢谢你的帮助。 最佳答案 要进行舍入,您可以使用公式introunded_size=(size+BLOCK_SIZE-1)/BLOCK_SIZE*BLOCK_SIZE;如果block大小也是2的幂这可以简化为introunded_size=(size+BLOCK_SIZE-1)&~(BLOCK_SIZE-1);要查找block的数量,您可以使用intbloc

windows - 命令/PowerShell/SQL 服务器 : Is there any way to see how long a windows service has been running?

所以我设法通过scquery"ServiceName"|来检查服务是否正在运行|找到“RUNNING”或netstart|找到“服务名称”,或在SQLServer中使用xp_servicecontrol。有没有办法查看服务的正常运行时间?如何查看服务的正常运行时间? 最佳答案 只要您的服务有自己的进程名称,这就应该有效。PowerShell_v4>(Get-Processlync).StartTimeFriday,October17,201411:46:04如果您在svchost.exe下运行,我认为您需要从事件日志中获取它。Pow

windows - 命令/电源外壳 : minimize all windows on your desktop except for current command prompt (console) or except for some particular window

好吧,我知道如何使用powershell方法从批处理文件中最小化桌面上所有打开的窗口-MinimizeAll():powershell-command"&{$x=New-Object-ComObjectShell.Application;$x.minimizeall()}"问题是:此方法最小化了所有内容,包括当前的cmd-console,在我的情况下,它应该始终对用户可见。现在,为了解决这个问题,我使用外部nircmd.exe工具和我的.bat文件的这一部分如下所示:::changecurrentcommandpromptwindowtitletitlemy-cmd-console::

windows - 错误 RC2247 : Symbol name too long (winnt. h)

尝试在Win32应用程序中显示对话框时出现RC2247错误(符号名称太长)。此文件中发生错误:C:\ProgramFiles(x86)\WindowsKits\10\Include\10.0.17134.0\um\winnt.h这在VS2015下运行良好。当我升级到VS2017时出现错误。我看过以下帖子,它们似乎不相关,因为它们属于prsht.h:RC2247:CannotopenRcfile:Resourceexplorercannotloadresource;Loadfailedhttp://social.msdn.microsoft.com/Forums/en-US/vcprer

c++ - 为什么在 C++ 方法中使用系统 ("some.exe") 不像命令行那样工作?

我正在为Windows编写程序,最终必须启动位于同一台计算机上的不同的预先存在的.exe。它将多个参数传递给此.exe文件。我正在阅读实际的命令和参数并构建命令,但我也尝试用相同的结果对其进行硬编码。这是硬编码版本(我从使用same.exe的旧C程序中挑选出来的):system("c://IQapture//dmon2_6_IHD-p2c://IQapture//mon_table_101_Tx8.txt1100");因此在int_cdeclmain(intargc,char**argv)中的原始程序中,系统的这种使用有效。在我的C++程序中的C++类方法中,当我发出命令时,正确的程序

c++ - TabCtrl_InsertItem : do we need to keep memory of the text alive?

对于TabCtrl_InsertItem,我们需要保留pszTextmember指向有效内存还是操作系统会复制文本以便我们可以立即清除文本?TCITEMtcItem={TCIF_TEXT};CStringstrText;for(inti=0;i我们如何才能知道对于这个函数和future的其他函数哪个是正确的?我在MSDN中找不到它。 最佳答案 操作系统会将字符串复制到内部数据结构中。您不需要维护支持字符数组。您可以在函数调用完成后立即释放它。通常,任何接收字符串的WindowsAPI函数都是这种情况。没错,MSDN文档中没有明确说明

java - 在java中的do while循环中只执行一次指令

在java中,如何在dowhile循环中只执行一次指令do{intparam;//executethisontyonetime(dependsofparam)//otherinstructionsinstructions}while(condition)谢谢 最佳答案 把你想只执行一次的语句放在一起是一种方法,但是,当然,这假设语句出现在循环的末尾或开始,并且不依赖于循环的条件on在循环中(之前或之后)。如果你有这样的事情:do{//dosomestuff//onetimecondition//dosomemorestuff}whi