如何在Win32复杂路径中使用boost / interprocess / file_lock

时间:2019-01-25 15:13:42

标签: c++ windows boost wchar-t

在PIVX(由比特币代码分叉)中,有以下代码

static boost::interprocess::file_lock lock(pathLockFile.string().c_str());

在src \ init.cpp文件的bool AppInit2()中。

如果程序在Windows上运行,则路径可以包含不同的unicode符号(来自不同的代码页),并且pathLockFile.wstring()将提供正确的字符串,但是 如果至少有2个来自不同代码页的符号,pathLockFile.string()将包含错误的路径。

可以建议使用哪种最小修补程序来避免unicode路径出现问题?

更新:

  • GetShortPathNameW不是一个好的解决方案,因为结果路径也可以 包含unicode符号
  • 不添加wchar_t接口来增强 很简单,因为我计划将我的补丁仅应用于PIVX 项目
  • 也许我可以将当​​前目录设置为PIVX的数据目录,并且仅将文件名提供给file_lock类,但这非常棘手-PIVX项目是多线程的

0 个答案:

没有答案