草庐IT

windows - 将 Win32 API 功能与 pthreads 一起使用/从 pthreads 使用

我有自己的线程库,使用TinyThread++构建。它工作得很好,对我来说也是一次很好的学习经历。我有自己的数据结构来传递消息,这个界面对我来说很有意义,主要是因为我是它的作者。每当在我的系统中创建一个线程时,它都会循环运行,并偶尔通过我自己设计的消息传递协议(protocol)检查消息。现在我想开始使用一些WindowsAPI功能,Windows有自己的一套约定和消息队列等。现在我很确定TinyThread++使用pthreads。由于我使用的是MinGW,我想知道是否在Windows线程上实现了pthreads。如果是这种情况,我也许可以将我的pthreads-threads视为w

c++ - Windows下如何为Code::Blocks/MinGW32编译Box2D?

我在互联网上发现了类似的问题,但没有一个对我有帮助。Code::Blocks工作区和项目文件包括DO生成.a文件,我已经将它们移动到Codeblocks/MinGW/lib,我已经将Box2D文件夹移动到Codeblocks/MinGW/include和HelloWorld.cpp示例仍然给我theseerrors. 最佳答案 看起来您用来构建.a的项目文件缺少一些文件。错误消息中提到的文件是在v2.1.2之后从Box2D中删除的文件,所以我猜您使用的是2.1.2源代码(或附近)以及来自其他来源的项目文件?无论如何,自己设置这些都非

c++ - 如何在 Win32 中等待窗口完成绘制?

我使用函数PrintWindow获取某个窗口的屏幕截图。但是由于某些原因,PrintWindow的调用通常在窗口自己绘制时触发,因此窗口的某些尚未绘制的部分是全黑的。等待窗口完成绘画的任何解决方案? 最佳答案 等待窗口完成绘制并不是解决问题的办法。或者,换句话说,问题不在于在目标窗口处于其绘制周期的一部分时调用了PrintWindow。PrintWindow通过向目标窗口发送WM_PRINT(或WM_PRINTCLIENT)消息然后等待目标窗口的消息队列进行处理来实现功能那条消息。排队的消息不会交错。为了弄清实际问题的根源,我认为您

c# - 从 32 位代码在 System32 中运行 64 位可执行文件

我试图从32位C#应用程序(在64位操作系统上)运行可执行文件,但我得到“系统找不到指定的文件”可能是因为wsqmcons.exe在C中不存在:\Windows\SySWOW64。该文件确实存在于System32中。如果可能,从代码运行wsqmcons.exe的最佳方法是什么?Processp=newProcess();p.StartInfo.Arguments="-f";p.StartInfo.FileName=@"C:\Windows\System32\wsqmcons.exe";p.Start();p.WaitForExit();Verify.AreEqual(0,p.ExitC

windows - 同一系统上的 64 位和 32 位非托管 dll - 最佳实践?

我有一个内置于32位和64位的共享dll。两个版本都使用相同的名称foo.dll。如何在系统上同时安装foo.dll,以便我的32位和64位应用程序在其路径中找到正确的dll。Windows本身使用SysWOW64(用于32位dll)和System32(用于64位dll)。我想避免部署到这些文件夹。让两个位的dll在同一个盒子上共存并被链接到它们的适当应用程序找到的公认方式(如果有的话)是什么? 最佳答案 如果您不部署到受文件重定向影响的文件夹(即system32),那么您几乎需要为DLL指定不同的名称。这样做的原因是DLL搜索路径

.net - 7 个 64 位操作系统上带有 32 位 oracle 客户端驱动程序的 System.data.OracleClient

我有一个从asp.net1.1(VS2003)迁移到Asp.net2(VS2008)的Web应用程序。我在新版本上执行Oracleconnexion时遇到问题。开发环境是64位七。当使用所有CPU生成应用程序时,我在System.Data.OracleClient上遇到问题,异常System.BadImageFormatException:Tentativedechargementd'unprogramdeformatincorrect.(HRESULT异常:0x8007000B)。.我在x86CPU上生成,但在启动时出现此错误:[BadImageFormatException:Imp

windows - 允许用户在 64 位 Windows 上安装 32 位版本

我有一个简单的inno-setup脚本,它允许我的设置根据Is64BitInstallMode值安装程序的32位或64位版本。这很好用,但我想为用户提供安装32位版本的选项,即使他们在64位Windows上也是如此。我想在选择应用程序安装路径之前做出选择,以便它可以根据他们的选择默认为32位或64位程序文件文件夹。如果它们在32位Windows上,我也想完全避免这个问题。我一直在玩各种功能,但还没有找到一种方法来做到这一点。如果我不能轻松完成,我将只进行两个单独的安装(我正在尝试确定最有意义的安装!)非常感谢任何建议! 最佳答案 我

c++ - 在 64 位 Windows 中 Hook 32 位进程

我在window764位上使用键盘钩子(Hook)时遇到问题。我做这些事情:1.创建一个32位的dll2.加载到应用程序并设置WindowHookEx我已经成功连接到32位应用程序(Y!M、Skype...),但是当我连接到我的桌面或任何64位应用程序(记事本)时,该应用程序会卡住,直到我停止我的连接应用程序。我创建64位dll,在上面做同样的事情,并在32位进程中遇到同样的问题。所以,我认为问题出在我的32位dll中,无法注入(inject)到64位进程中。但是我不知道如何在窗口关注它时注入(inject)64位dll来处理。我想知道有什么方法可以做到,以及如何去做。或者我可以只Ho

windows - win32 PE 加密器 = 防病毒误报

我正在努力保护我的程序免遭破解和逆向工程。我用C++(VisualStudio2010)编写程序,还用汇编程序编写简单的加密算法。算法被添加到EXE文件中,使其更难破解,因为它是在主程序之前加载的。这不是一项艰巨的工作。但是……现在,我在virustotal.com上有很多大约50%的误报。当我尝试仅使用upxpacker时,我也遇到了同样的问题:(...每次。我多次修改算法但没有成功。你能帮帮我吗?谢谢。 最佳答案 正在开发一个名为Taggant的新项目(现已完成)。这会将一个签名标记嵌入到文件中,以标识加壳器的被许可人以及加壳器

windows - 使用 rundll32.exe 作为 Windows 服务运行 dll

我能够使用rundll32.exe运行一个dll。现在我想将它作为Windows服务运行,但它似乎没有启动并且超时。我不确定如何传递参数。尝试一些类似..sc.execreateservicebinPath="c:\windows\system32\rundll32.exe-test.dll-Main"尝试来自的建议creatingaservicewithsc.exe;howtopassincontextparameters但它似乎不起作用。有什么建议吗?谢谢,卡尔提克 最佳答案 rundll32.exe不能充当服务!你需要像srv