草庐IT

FILES_SECTION

全部标签

c++ - 为什么 std::mutex 比 CRITICAL_SECTION 慢两倍

std::mutex是用关键部分实现的,这就是为什么它比OSMutex(在Windows上)快得多。但是它不如WindowsCRITICAL_SECTION快。计时只是一个线程中的一个紧密循环:423.76nsATLCMutex41.74nsstd::mutex16.61nswin32CriticalSection我的问题是std::mutex还做了什么?我查看了来源,但无法理解。然而,在它服从CritSec之前还有额外的步骤。我的问题是:这些额外的步骤是否有用?也就是说,额外的步骤是什么?使用CRITICAL_SECTION我会错过什么?还有,如果它不是用Mutex实现的,为什么他们

c++ - 如何修复 "defined in discarded section"链接器错误?

我的程序在没有-flto的情况下编译得很好,但在使用-flto时我得到了这个错误:%arm-none-eabi-g++--versionarm-none-eabi-g++(4.8.3-9+11)4.8.320140820(release)Copyright(C)2013FreeSoftwareFoundation,Inc.Thisisfreesoftware;seethesourceforcopyingconditions.ThereisNOwarranty;notevenforMERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.%arm-non

c++ - VS2008 : Can I build a project with 2 CPP files of the same name in different folders?

这是我的文件夹结构:/|--program.cpp--utility.h--utility.cpp|--module/|--utility.h--utility.cpp//NotethatIhavetwofilesnamedutility.handtwonamedutility.cpp在构建项目时,我收到链接错误(LNK2028:未解析的token等...),指出某些符号未定义。我已经确认所有符号都已定义,并且所有声明的函数都有相应的定义。我有一种感觉,在编译我的项目时,两个文件夹中的utility.cpp文件被编译到输出文件夹中的相同utility.obj中。结果,一个覆盖了另一个。

c++ - 我可以创建多少个 CRITICAL_SECTION?

我可以初始化和使用的关键部分的数量是否有限制?我的应用程序创建了许多(几千个)需要线程安全的对象。如果我在每个部分中都有一个关键部分,那会占用太多资源吗?我认为因为我需要声明我自己的CRITICAL_SECTION对象,所以我不会像使用Win32Mutex或Event那样浪费内核资源?但我只是有一个挥之不去的疑问...?老实说,并不是所有这些对象都需要对我的应用程序来说是线程安全的,但关键部分位于库中的某个低级基类中,我确实需要一个几千个!我可能有机会修改这个库,所以我想知道是否有任何方法可以延迟创建(然后从那时起使用)临界区,只有当我检测到对象正在从不同的线程使用到它是在哪一个创建的

c++ - 使用 mingw-w64 工具链时,以 Release模式链接的 Regex Boost 库会发出 "duplicate section has different size"警告

在Release模式下链接我的项目时,我收到以下警告:myProject-libs/release/libboost_regex-mt-s-1.50.0.a(cpp_regex_traits.o):duplicatesection`.data$_ZZN5boost16cpp_regex_traitsIcE21get_catalog_name_instEvE6s_name[boost::cpp_regex_traits::get_catalog_name_inst()::s_name]'hasdifferentsize我怀疑原因可能是boost库的编译选项与我在项目中使用的选项不同,但我

windows - 我的程序应该如何决定安装在 "Program Files (x86)"下?

出于好奇,如果我正在创建程序安装程序,我应该如何决定安装到哪个“ProgramFiles”目录?在32位系统上,环境变量“%programfiles%”就足够了。但是,在64位系统上,32位程序不应安装到该文件夹​​,而应安装到“%programfiles(x86)%”,据我所知,它指向“C:\ProgramFiles(x86)”。我的问题是:安装程序应该如何决定使用哪个环境变量?对于32位应用程序,“%programfiles%”的值会发生变化吗?还是我应该始终在使用“%programfiles%”之前首先检查“%programfiles(x86)%”是否存在,或者我应该做一些完全不

.NET:如何使用 Windows "Copy Files"对话框复制文件

.NET:如何使用Windows“复制文件”对话框复制文件。我需要批量复制多个文件。是否存在任何.NET2.0库/方法允许我以跨平台方式执行此操作而无需调用特定于Windows平台的库。提前致谢。 最佳答案 SHFileOperation,标准.NET框架支持良好。添加对Microsoft.VisualBasic.dll的引用并使用Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory()方法。多个重载可用,允许您控制UI的外观以及如何处理错误。

c++ - 无法访问 "Program Files"中的 INI 文件

我编写了这个C++应用程序,它需要检查一个INI文件(“preference.ini”),并最终修改它(例如,如果用户不想再看到介绍表格)。我在WinXP中创建它,它在我编译它的系统上运行良好(在许多位置,包括“程序文件”)。问题:在Win7中,如果我将完整的程序文件夹放在“C”下,它工作正常:\”(例如“C:\MyProgram”),但如果我把它放在“C:\ProgramFiles(x86)\MyProgram”,它只是检索一些神秘数据(我的INI文件中不存在的值)。当我更改一些设置并将它们保存到文件时,它(显然)保存更改(没有错误,但是当我打开文件时更改不存在...我在另一个Win

java - Files.createTempDirectory ("") 抛出 NullPointerException

当我调用Files.createTempDirectory("")我得到以下异常:java.lang.NullPointerExceptionatsun.nio.fs.WindowsSecurityDescriptor.fromAttribute(WindowsSecurityDescriptor.java:353)atsun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:220)atjava.nio.file.Files.newByteChannel(Files.java:

windows - 如何在 Windows 上以 'Watch output files' 模式 (tsc -w) 使用 TypeScript 编译器?

安装VS插件的编译器版本没有这个选项,但是node.js的版本有。但是我不能让这个模式在Windows上工作。它创建空文件并且不编译任何东西。这是一个已知的错误吗?这可以帮助吗?我不想使用重量级的VS,创建VS项目等等。更新:我提交了一个bug. 最佳答案 -w除了在Node上不受支持。如果您甚至运行help命令,除非您使用的是node,否则您将不会得到-w。让它在非Node运行时工作将是在codeplex上提出的一个很好的建议http://typescript.codeplex.com/workitem/list/basic