草庐IT

api-ms-win-core-console-l

全部标签

windows - 最好的 win32 编译脚本语言?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭11年前。Win32最好的可编译脚本语言是什么?我更喜欢.EXE,因为我不想先在服务器上安装运行时(我的公司通过远程管理很多),但我需要能够通过网络执行NTFS权限和(如果可能)API等操作。有一个小的Perl似乎能够完成大部分工作,但它似乎已经有一段时间没有更新/开发了。我对Lua很感兴趣,但我不知道它是否拥有我需要的一切(并且不想在五十个图书馆站点中搜寻以试图

c - 有效地为不同的 Windows 版本使用不同的 API

我面临着使用可用的新Windows运行时功能的需要,并回退到新功能不存在的旧功能。代码路径对性能至关重要。如果平台(Windows8/WindowsServer2012)提供,我需要调用GetSystemTimePreciseAsFileTime,如果不存在较新的版本,则回退到GetSystemTimeAsFileTime。我知道我可以使用LoadLibrary和GetProcAddress加载GetSystemTimePreciseAsFileTime如果失败,回退到GetSystemTimeAsFileTime。我担心通过另一层间接调用像这样对性能至关重要的东西对性能的影响。是否有

c++ - 我如何找到 Win32 中的资源泄漏?

运行几个小时后,我的应用程序无法创建新的字体对象:CreateFontIndirect()returnsNULL.我知道如何查找内存泄漏(即使用并行检查器或其他分析器-其中大部分包括泄漏检测)。但是如何定位Win32中的资源泄漏? 最佳答案 为自己准备一份GDIView-这个有用的工具可以显示您的应用程序使用的所有GDI对象,包括字体名称、大小等详细信息。这在过去被证明非常方便。对于Win32应用程序,您可能需要查看WTL框架-它使用轻量级C++类包装GDI对象,为您处理对象删除。 关于

c++ - 为什么 Win32 mutex 这么耗时

我一直在通过C/C++阅读Windows的书。在第8章第215页,作者比较了各种同步机制的性能。而且我发现互斥锁的性能很差。当4个线程同时运行时,它花费了超过23秒用于互斥锁同步。为什么Win32mutex这么耗时?我们什么时候可以使用互斥体?PS:我把测试代码贴在了GitHub:https://gist.github.com/985198感谢您的回复。 最佳答案 Win32中的互斥量是一个内核对象,这意味着每次使用它(Wait、Release)都需要一个系统调用来切换到内核模式并返回到用户模式模式。另外,如果您的线程实际上必须等待

c++ - 如何将 Win32 HRESULT 转换为 int 返回值?

我正在用C++编写Windows控制台应用程序,并希望在成功时返回零,在失败时返回有意义的错误代码(即,S_OK应返回0,而E_OUTOFMEMORY应该返回一个不同于E_FAIL等的返回值)。以下方法可行吗?:intwmain(intargc,wchar_t*argv[]){HRESULThr=DoSomething();return(int)hr;}或者有更好的方法吗?也许是我忘记或找不到的标准Win32API函数或宏? 最佳答案 OP希望返回值为零以指示成功。有些成功代码是非零的,所以...if(SUCCEEDED(hr))r

c++ - 关闭#pragma deprecated 警告的 Win 编译开关是什么?

使用VisualStudio.NET2003C++和wininet.dll我看到很多C4995warningsMoreinfo感谢任何帮助。谢谢。 最佳答案 除了上述答案之外,值得一提的是,仅在有限范围内禁用警告通常是一种很好的做法(如果您将这些编译指示放在头文件中,这一点尤其重要):#pragmawarning(disable:4121)//alignmentofamemberwassensitivetopacking#include#pragmawarning(default:4121)//Restoredefaulthandl

c++ - 如何使用 SetTimer API

我尝试使用SetTimerAPI每隔X分钟调用一个函数。所以,我写了这段测试代码voidf(){printf("Hello");}intmain(){SetTimer(NULL,0,1000*60,(TIMERPROC)&f);}我应该每分钟都写下你好,但它不起作用。 最佳答案 你的程序有几个问题:C程序在离开main()时确实会结束,因此没有时间可以触发计时器。Win32计时器需要消息泵(见下文)才能工作,因为它们是通过WM_TIMER消息实现的,即使它们没有与任何窗口相关联,并且如果您提供函数回调。Whenyouspecifya

windows - 如何使用 Perl 从 8.3 DOS 路径获取完整的 Win32 路径?

我的问题基本上说明了一切。我得到这个:C:\DOCUME~1\frew\MYDOCU~1\Code\AIRCRA~1\lib\ACD\VALIDA~1.PM我想要这个:C:\DocumentsandSettings\frew\MyDocuments\Code\aircraft_ducting\lib\ACD\Validators.pm我查看了File::Spec::Win32,但似乎没有任何东西可以解决问题。想法?谢谢! 最佳答案 您可以使用Win32::GetLongPathName($path)来自Win32模块。

c++ - 编译错误,MinGW(g++),kinect for windows API

Kinect开发新手。我想使用MinGW作为我的Kinectforwindows的开发环境。我已经在c:\programfiles\MicrosoftSDKS\kinect\v1.8下安装了KinectforwindowsSDK。然后关注thisexample从MSDN,我写了一个代码来初始化我的Kinect传感器。当我编译时使用:g++-ccolor.c-I"c:\ProgramFiles\MicrosoftSDKs\Kinect\v1.8\inc"我收到了一大堆警告和错误警告InfileincludedfromNuiApi.h:109:0,fromcolor.c:2:c:\Prog

windows - InnoSetup 在 Mac Parallels 上安装的 Win XP 上找不到 'My Documents'

我一直在尝试帮助用户安装我们的软件。我们的软件设置是使用InnoSetup分发的,他将它安装在装有Parallels和WindowsXP的MacPro上。安装期间,InnoSetup失败并显示:内部错误:无法扩展shell文件夹常量“userdocs”在InnoSetup中,{userdocs}映射到“我的文档”文件夹,并且由于InnoSetup是用Delphi编写的,我假设它使用CSIDL_Personal或CSIDL_MYDOCUMENTS来检索此文件夹,但我不知道如何修复这些位置。有人遇到过这个吗?如果是这样,您知道如何解决吗?谢谢! 最佳答案