草庐IT

MinGW-w64

全部标签

windows - 对于 64 位 Windows 上的 32 位应用程序,64 位操作是原子的吗

所以这个文件说运行64位Windows给你64位原子性:http://msdn.microsoft.com/en-us/library/windows/desktop/ms684122%28v=vs.85%29.aspx这篇文章表明您必须运行64位应用程序才能获得64位原子性:atomicityin32/64bit我正在开发Win32控制台应用程序。所以,如果我理解正确的话,我必须使用32位类型来获得原子性,对吗?我不能假设64位类型具有原子写入/读取? 最佳答案 在64位应用程序中,64位读/写操作可以是自动的,因为编译器可以利用

windows - 无法使用 apm 在 Windows 7 64 位机器上安装 atom-beautify

我正在尝试安装atom-beautifyGitHub插件Atom编辑apm但仍然出现此错误:npmERR!gitfetch-aorigin(https://github.com/Benvie/harmony-collections.git)fatal:Unabletofindremotehelperfor'https'npmWARN`gitconfig--getremote.origin.url`returnedwrongresult(git://github.com/ariya/esprima.git)npmERR!gitclonegit://github.com/ariya/esp

windows - MinGW/MinGW64 链接和依赖于 `msvcrt.dll`

我在MinGW中为WinAPI编码我还没有完全理解的一件事是VC可再发行组件,我有一大堆问题有人说这样的程序需要msvcrt.dllbotc++和c编译需要相同的库吗?这是否适用于所有客户目标?我必须重新分发它吗?我可以重新分配它吗?我可以轻松摆脱这种外部依赖吗?有没有其他编译器可以让我不携带这种不愉快的外部依赖?(我隐约记得听说它有问题-我听说它可能不是核心系统库,或者它不能免费使用和重新分发库)我发现这里有问题,因为我想生成没有依赖性的小exe,只调用系统WinAPI,如果我使用一些像C标准库函数函数我更喜欢它经济和静态编译,而不是任何第三方依赖 最佳答

windows - x64 允许每个 block 的线程数少于 Win32?

当我执行一些cuda内核时,我注意到对于我自己的许多cuda内核,x64构建会导致失败,而Win32不会。我很困惑,因为cuda源代码是相同的,而且构建很好。就在x64执行时,它说它需要太多资源来启动。但是x64在概念上不应该比Win32允许更多的资源吗?如果可能的话,我通常喜欢每个block使用1024个线程。因此,为了使x64代码工作,我必须将block缩小到256。有人知道吗? 最佳答案 是的,这是可能的。大概您正在谈论的问题是registers-per-threadissue.在32位模式下,所有指针都是32位的,只需要一个

windows - 找不到用于 mingw sh autogen.sh 执行的 aclocal

我正在尝试执行./autogen.sh来自的cppunit文件夹中的脚本http://www.freedesktop.org/wiki/Software/cppunit但是在mingwshell(sh)中我得到下一个错误:error:aclocalnotfoundaclocalm4脚本在c:\MinGW\share\目录。如何修复该错误? 最佳答案 编译libmodbus库时遇到了类似的问题(它使用相同的构建原理)。我在MSYSshell中输入了以下命令:pacman-Smsys/libtoolpacman-Smsys/autoco

c++ - MinGW 可以毫不费力地复制大多数 unix 系统调用吗?

背景:我正在移植一个专门为unix系统用C++开发的大型项目,以便与Windows兼容,从而为最终的Windows分发让路。我在Windows开发方面没有太多经验,但我想在高级开发人员进入并接管之前,尽我所能,把事情做好。问题:一段时间以来,我一直在查找软件中使用的所有unix/posix调用的Windows版本,大部分来自dirent.h、unistd.h,还有一些在sys下,例如sys/stat.h或sys/types.h。尽管修改程序以采用新的Win32API调用约定和返回类型(有时是所有新函数)需要大量工作,但它最终可能会起作用。但我经常看到这种情况出现,事实上MinGW,我猜

windows - 代码段描述符中的 D 标志对 x86-64 指令有何作用?

当在x86-64代码中使用时,我试图了解代码段描述符中D标志的工作原理。它设置在代码段描述符的D/B位22中,如下图所示:英特尔文档(来自3.4.5SegmentDescriptors部分)陈述如下:D/B(defaultoperationsize/defaultstackpointersizeand/orupperbound)flagPerformsdifferentfunctionsdependingonwhetherthesegmentdescriptorisanexecutablecodesegment,anexpand-downdatasegment,orastacksegm

c - 为什么我在 64 位机器上调试 32 位应用程序时得到 STATUS_WX86_BREAKPOINT 而不是 EXCEPTION_BREAKPOINT?

我正在尝试在Windows上编写一个简单的调试器来调试32位应用程序,我的机器是64位的。我正在使用C语言。当我在指定地址添加断点(0xCC)时,我希望得到EXCEPTION_BREAKPOINTdebugEvent.u.Exception.ExceptionRecord.ExceptionCode中的值但是我得到STATUS_WX86_BREAKPOINT(0x4000001F)反而。MSDN网站将其定义为“Win32x86仿真子系统使用的异常状态代码。”。没有对此行为的任何进一步解释。我能像EXCEPTION_BREAKPOINT一样处理这个异常吗??所以代码将是switch(de

java - 使用 Path 解决方案后,我无法让命令提示符读取 javac 命令。 ( Windows 8.1 64 位)

我不断阅读:'javac'isnotrecognizedasaninternalorexternalcommand,operableprogramorbatchfile这是我当前包含java的路径:C:\ProgramFiles(x86)\NVIDIACorporation\PhysX\Common;C:\ProgramData\Oracle\Java\javapath;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C

c# - 64 位 Windows 可以分配超过 7FFF'FFFF'FFFF 的虚拟内存吗?

上下文我正在努力升级.NET库以支持64位。该库直接在Windows上其他进程的内存中执行各种操作。我必须在IntPtr(最大正值7FFF'FFFF'FFFF'FFFF)或UIntPtr(最大正值FFFF'FFFF'FFFF'FFFF)两种类型之间进行选择处理我的内存指针。网上关于这两者的资料很多。IntPtr似乎是事实上同意的选择,因为它符合CLS并且大多数.NETAPI都依赖它(引用Marshal来自InteropServices).问题我决定打开一个64位进程并检查分配的内存区域,以及进程中加载​​的模块,看看使用UIntPtr支持无符号指针是否有值(value)(地址>7FFF