草庐IT

c# - 如何获取路径超过 260 个字符的文件的长度?

我试图在具有深层嵌套文件夹的文件共享中查找特别大的文件。它们不是我的文件夹,所以我不会重新排列它们。获取文件长度的常用方法是:stringfullPath="C:\path\file.ext";FileInfoinfo=newFileInfo(fullPath);longlen=info.Length;如果路径的长度大于260个字符,FileInfo构造函数将抛出PathTooLongException。我已经阅读了关于.NET中长文件路径的KimHamilton博客条目,所以我知道如果我放弃框架并使用Win32API调用来完成它就可以完成。有没有办法用框架做到这一点?KimHamil

c++ - 在将 ASCII 字符串传递给 Windows API 函数之前将它们转换为 UTF-16

在我当前的项目中,我一直在使用宽字符(utf16)。但是由于用户的唯一输入将是一个url,无论如何它都必须以ascii和另一个字符串结束,所以我正在考虑将整个程序切换为ascii。我的问题是,在将字符串传递给WindowsAPI函数之前将它们转换为utf16有什么好处吗?在网上做了一些研究后,如果您不在Windows上使用UTF-16,似乎很多人都推荐这个。 最佳答案 在WindowsAPI中,如果你调用像这样的函数intSomeFunctionA(constchar*);然后它会自动将字符串转换为UTF-16并调用函数的真实、Un

c++ - Windows 游戏 : UTF-8, UTF-16、DirectX 和 Lua

我正在为学习目的开发一个Windows游戏(我正在学习DirectX)。我希望它有UTF支持。Readingthisquestion我了解到windows使用的是wchar_t,也就是UTF-16。我希望我的游戏支持Lua脚本,并且Luadoesn'treallylikeUnicodemuch..它只是将字符串视为“字节流”;这对于UTF-8来说已经足够好了,但是UTF-16几乎不可能使用。长话短说:windows需要UTF-16,lua需要UTF-8。所以我想,让我们只使用带有普通char*和string的UTF-8!.length()会被搞砸,但谁在乎呢?但是它不起作用:const

c++ - GetFileAttributesA 为现有目录返回 "17"。 "16"表示它是一个目录,文档中没有提到 "17"

Windows764位,用mingw编译。我正在尝试使用Windowsheader中的GetFileAttributesA来测试给定路径是否是目录。作为目录的常量是16。但出于某种原因,它返回17。我的代码如下所示:#include#includevoiddir_exists(std::stringdir_path){DWORDf_attrib=GetFileAttributesA(dir_path.c_str());std::cout当我运行它时,输出是:Current:17Wanted:16电流应该返回16,在这里。正如我在主题中所说,我什至在文档中找不到任何提及17的含义。

c++ - 将 UTF-16 转换为 UTF-8

我目前使用的是VC++2008MFC。由于PostgreSQL不支持UTF-16(Windows为Unicode使用的编码),我需要在存储之前将字符串从UTF-16转换为UTF-8。这是我的代码片段。//demo.cpp:Definestheentrypointfortheconsoleapplication.//#include"stdafx.h"#include"demo.h"#include"Utils.h"#include#ifdef_DEBUG#definenewDEBUG_NEW#endif//TheoneandonlyapplicationobjectCWinAppthe

windows - 无法在 Windows16 docker 中下载任何图像

我一直在试验docker的目的是在windows16上安装docker我正在按照https://msdn.microsoft.com/en-us/virtualization/windowscontainers/quick_start/quick_start_windows_server的说明进行操作在安装docker之前一切看起来都很好,之后当我尝试测试它提供的docker时低于错误。注册层失败:重新执行错误:退出状态1:输出:ProcessBaseLayerC:\ProgramData\docker\windowsfilter\0c9effd422805350acb1f051eb1

windows - BSTR 是否采用 UTF-16 编码?

我正在尝试学习Unicode?对我来说最困难的部分是编码。BSTR(基本字符串)内容代码点可以U+10000或更高吗?如果不是,那么BSTR的编码是什么? 最佳答案 在Microsoft-speak,Unicode通常是UTF-16的同义词(如果没记错,则为小端字节序)。在BSTR的情况下,答案似乎是视情况而定:OnMicrosoftWindows,consistsofastringofUnicodecharacters(wideordouble-bytecharacters).OnApplePowerMacintosh,consi

windows - Microsoft Stack 是否始终与 16 字节对齐?

在AssemblyLanguage,SeventhEditionforx86ProcessorsbyKipIrvine,在第211页,它在5.53x86调用约定下说,它解决了Microsoftx64调用约定,Whencallingasubroutine,thestackpointer(RSP)mustbealignedona16-byteboundary(amultipleof16).TheCALLinstructionpushesan8-bytereturnaddressonthestack,sothecallingprogrammustsubtract8fromthestackpo

c++ - shell 扩展 : DragQueryFile returns at most 16 (in Windows 7)

我已经编写了一个shell扩展(由TheCompleteIdiot'sGuidetoWritingShellExtensions指导),在我升级到Windows7(32位)之前它可以正常工作。现在,函数DragQueryFileUINTuNumFiles=DragQueryFile(hDrop,0xFFFFFFFF,NULL,0);返回所选文件的正确数量,直到该数量超过16。然后始终返回16。我已经在XP(32)和Vista(32)中测试过它,它可以工作,在Windows7(32/64)中它没有。有什么想法吗?谢谢。 最佳答案 IS

windows - 为什么 x64 项目使用默认的打包对齐方式 16?

如果您在VS2012的x64项目中编译以下代码而没有任何/Zp标志:#pragmapack(show)然后编译器会吐出:valueofpragmapack(show)==16如果项目使用Win32的话,编译器会吐出:valueofpragmapack(show)==8我不明白的是,在Win64中任何类型(即longlong和指针)的最大自然对齐是8。那么为什么不直接为x64设置默认对齐8?与此有点相关,为什么有人会使用/Zp16?编辑:这里有一个例子来说明我在说什么。即使对于x64指针具有8字节的自然对齐,Zp1也可以将它们强制为1字节边界。structA{chara;char*b;}