草庐IT

STM32WB55

全部标签

windows - 如何在 win32 上调试文件系统 "access denied"错误?

我现在在构建脚本上玩得很开心:我正在使用Waf来插入我们的构建过程,一切都很好,除了在Windows上,我在构建过程中遇到间歇性错误。错误基本上总是一种或另一种形式的“访问被拒绝”错误,与我在构建过程中创建的临时文件有关,以使某些工具能够运行并完成它的工作。例如,在运行NSIS之前要生成可执行安装程序,我必须将所有必需的文件“暂存”到构建目录并从那里运行命令。有时事情会按预期工作,但有时我会收到有关我复制的其中一个文件的错误报告,例如:文件:打开文件“Platform\\Win32\\lxml-2.2.1-py2.6-win32.egg”失败我花了很长时间试图找出问题所在,但这真的很难

windows - MSI 安装程序,64 位操作系统,写入\windows\system32\inetsrv 文件夹

在WindowsServer200864位上,我需要一个.msi安装程序文件来将一些文件写入\windows\system32\inetsrv文件夹。(这些文件是一些XML模式验证文件,C#XmlReaderSettings.Schema.Add()预计位于该文件夹中)。当安装程序运行时,文件最终位于\windows\SysWOW64\inetsrv文件夹中,而不是它们需要的位置。我试图让安装程序写入\windows\Sysnative文件夹,并且安装程序创建了一个具有该确切名称的文件夹,我没想到这是可能的。参见thispage有关抑制SysWOW64重定向的良好讨论。在Windows

windows - 为 Win32 和 WinCE 开发非托管 C++ DLL 的最佳方式是什么?

我对如何最好地设置VS2008项目以便将DLL编译为智能设备DLL和C++Win32DLL的意见很感兴趣。除了拥有两个项目并共享源文件之外,还有其他选择吗? 最佳答案 是的,您可以使用多个平台来做到这一点。虽然很难做到正确,但您无法从项目模板中初始化设置。最好的办法是使用SmartDevice项目模板启动项目,因为它具有最多的自定义设置。然后Build+ConfigurationManager,Activesolutionplatform=New,选择Type=Win32,Copy=None。最后一个是痛苦的一点,您必须自己更改Wi

c - 32 位与 64 位驱动程序

在Windows732位或Windows764位上开发设备驱动程序(内核模式)时是否有任何细节?我可以在某个平台上开发并准备构建以在另一个平台上运行吗?谢谢。 最佳答案 您需要WindowsDriverKit.是的,您应该能够交叉编译。 关于c-32位与64位驱动程序,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6158022/

c++ - 多线程 Win32 C++ 程序在多线程中使用 try/catch 时崩溃

我正在编写一个多线程程序,它会在抛出特定异常时崩溃。剥离了越来越多的代码来查找问题后,我现在只剩下一个极其简单的案例,它会导致许多不同的崩溃之一,似乎是随机的。我不知道为什么要这样做。程序的全部内容如下:#includeWINAPIDWORDthreadFunc(LPVOIDx){while(true){try{throw1;}catch(...){}}return0;}intmain(intargc,char*argv[]){CreateThread(NULL,0,threadFunc,NULL,0,NULL);CreateThread(NULL,0,threadFunc,NULL,

c# - 用于自动化的 User32 API 自定义 PostMessage

我想通过C#自动化一个名为Spotify的程序,(我认为)最好的方法是触发假按键。我想编程暂停播放,但我对这些东西的了解还不够多,无法找到按键以外的其他方法。所以我使用VisualStudio的Spy++查看按下键盘上的播放按钮时Spotify收到什么消息,我将该消息中的数据复制到我的控制台应用程序并运行它,当我运行时我可以在Spy++的消息记录中看到PostMessage,所以这是有效的,但它不会暂停/播放我的音乐。我想这是因为我还必须发送另一个带有另一个目的地的PostMessage,但我怎么知道还要发送什么?发布消息调用:MessageHelper.PostMessage((in

windows - 64 位应用程序与 32 位进程通信

我有一个使用32位第三方库的32位应用程序。现在我必须将我的应用程序设为64位,以便它可以利用64位地址空间(大内存)。由于我无法将32位库加载到64位应用程序进程中,我正在考虑在第三方库上创建32位可执行包装器,并使用IPC(命名管道/套接字)从我的64位应用程序进行通信。所以我的问题是他们这样做会有什么问题吗?此外,如果我必须在64位系统上安装我的应用程序,所有与我的应用程序相关的文件都将被复制到“c:\ProgramFiles”目录。现在我可以将我的32位第三方exe包装器保留在同一个“c:\ProgramFiles”中,还是我需要复制到“c:\ProgramFiles(x86)

windows - 从多个目录加载 Win32 模块

我有一个程序将插件存储在多个目录中,如下所示:root/core/bin/app.execore.dllplugin.dllsupport.dlla/bin/a.dlla_support.dll在此示例中,a.dll导入了core.dll、support.dll和a_support.dll(它们在导入表中的顺序)。a_support.dll导入support.dll。我可以更改除支持模块之外的所有模块,这些模块是第三方库的重新发布。我的代码调用LoadLibraryEx(name,NULL,LOAD_WITH_ALTERED_SEARCH_PATH)来加载每个插件。对于core.dll

c++ - 在 Windows 服务和 win32 应用程序 C++ 之间使用 IPC

我已经编写了一个Windows服务,我想将它与一个win32应用程序(桌面)进行通信(IPC),谁能告诉我我应该怎么做才能进行这种通信。在我的例子中,我的服务是服务器,其他进程是客户端。每当用户在他的机器上启动它时,进程应该与服务建立连接。 最佳答案 我编写了支持您描述的命名管道的服务。我不需要做任何特别的事情来设置客户端打开和读/写命名管道的权限。我发现以下Microsoft文章在开发我的代码时很有用:“完整的服务示例”:http://msdn2.microsoft.com/en-us/library/bb540476(VS.85

c++ - 在 C++ (Win32) 中快速获取 Windows 应用程序屏幕截图的方法?

当我的应用程序需要获取其他Windows应用程序的屏幕截图时,我遇到了问题。我正在使用win32api'PrintWindow'中的函数,但效果不佳。它很慢,其他应用程序窗口中的一些组件显示为黑色矩形。Devrexster有一个名为DExpose2的应用程序(Mac-OS风格的任务切换器)。它可以非常快速地获取其他应用程序的屏幕截图,非常快,甚至可以连续获取这些屏幕截图。我猜它是使用Direct3D来获取应用程序的屏幕截图,而不是像我正在使用的那样使用GDI。是否可以为此目的使用Direct3D?如果可能,哪种方法最简洁? 最佳答案