How to open an std::fstream (ofstream or ifstream) with a unicode filename?

You wouldn't imagine something as basic as opening a file using the C++ standard library for a Windows application was tricky ... but it appears to be. By Unicode here I mean UTF-8, but I can convert to UTF-16 or whatever, the point is getting an ofstream instance from a Unicode filename. Before I hack up my own solution, is there a preferred route here ? Especially a cross-platform one ?

如何用unicode文件名打开std :: fstream(ofstream或ifstream)?

你不会想象使用Windows应用程序的C ++标准库打开一个文件是非常基本的,但似乎是这样。 在这里Unicode是指UTF-8,但是我可以转换为UTF-16或其他任何东西,重点是从Unicode文件名中获取一个ofstream实例。 在我开发自己的解决方案之前,有没有一个首选路线? 尤其是跨平台的? C ++标准库不支持Unicode。 char和wchar_t不需要是Unicode编码。 在Windows上, wchar_t是UTF-16,但标准库中没有直接支持UTF-8文件名( char数

OpenCV Matrix of user

Is there a way to have a matrix of user-defined type in OpenCV 2.x? Something like : cv::Mat_<KalmanRGBPixel> backgroundModel; I know cv::Mat<> is meant for image and mathematic, but I want to hold data in a matrix form. I don't plan to use inverse, transpose, multiplication, etc., it's only to store data. I want it to be in matrix form because the pixel_ij of each frame

用户的OpenCV矩阵

有没有办法在OpenCV 2.x中拥有用户定义类型的矩阵? 就像是 : cv::Mat_<KalmanRGBPixel> backgroundModel; 我知道cv :: Mat <>是用于图像和数学,但我想以矩阵形式保存数据。 我不打算使用反转,转置,乘法等等,它只是存储数据。 我希望它是矩阵形式,因为每个视频帧的pixel_ij都会链接到backgroundModel_ij。 我知道core.hpp中有一个DataType <_Tp>类需要为我的类型定义,但我不知道该怎么做。 编

C++ Cross platform file explorer implementation challenges

I would like to implement a cross platform file explorer for both Windows and Linux. Lately, I have been learning to use CMake and writing CMakeList files, so I am thinking of doing some productive work. My preferred programming language is C++. Using CMake to build for Linux using g++ and on Windows using MS Visual Studio. Features I would like to implement: - Basic file access: read/write

C ++跨平台文件浏览器实施挑战

我想为Windows和Linux实现跨平台文件浏览器。 最近,我一直在学习使用CMake和编写CMakeList文件,所以我正在考虑做一些有成效的工作。 我的首选编程语言是C ++。 使用CMake为使用g ++的Linux和使用MS Visual Studio的Windows构建。 我想实现的功能: - 基本文件访问:读/写/删除 - 剪切/复制/粘贴文件 - 显示文件信息,如创建日期,修改,大小,位置等。 现在这些功能还是相当基础的,但是我可以添加一些很酷的东西,因

Cross platform development

I'm going to enter a small game competition in the coming months. They require the submission to be able to be compiled ( and it will be, before being run/evaluated for the contest) on Linux. I'm going to be using SDL and C++. I've only ever developed on Windows before and I've grown quite accustomed to the benefits Visual Studio gives. I'd like to be able to develop in wi

跨平台开发

我将在未来几个月进入一场小型比赛。 他们要求提交能够在Linux上进行编译(并且在竞赛之前进行评估)。 我将要使用SDL和C ++。 我以前只在Windows上开发过,而且我已经习惯了Visual Studio提供的好处。 我希望能够使用VS开发Windows,然后在进程结束时将其迁移到Linux。 除了确保SDL已经安装在Linux机器上之外,在开发过程中我可以做些什么来让流程更简单? 另外,所有这些竞赛规则都规定: 它也必须在开放平台上工作(

platform compiling of a Qt application

I have written a C++ application that uses the Qt framework. I would like to make this application available on different platforms. Since I use Linux, I have no problems compiling the code for Linux. The questions is: Can I compile my code in such a way that it will run on Windows, Mac, etc.? As said above, I'm working on a Linux machine and can't possibly install all the different

平台编译Qt应用程序

我编写了一个使用Qt框架的C ++应用程序。 我想让这个应用程序在不同的平台上可用。 由于我使用Linux,所以在编译Linux代码时没有任何问题。 问题是: 我可以编译我的代码,使其可以在Windows,Mac等上运行? 如上所述,我正在开发一台Linux机器,无法安装所有不同的平台。 如果可能的话,需要哪些步骤(简单来说)? 如果有关于此主题的任何文档,我很乐意阅读任何内容 - 请仅指出我正确的方向。 谢谢! 您可以为W

How to identify platform/compiler from preprocessor macros?

I'm writing a cross-platform code, which should compile at linux, windows, Mac OS. On windows, I must support visual studio and mingw. There are some pieces of platform-specific code, which I should place in #ifdef .. #endif environment. For example, here I placed win32 specific code: #ifdef WIN32 #include <windows.h> #endif But how do I recognize linux and mac OS? What are defin

如何从预处理器宏中识别平台/编译器?

我正在编写一个跨平台的代码,它应该在linux,windows,Mac OS上编译。 在windows上,我必须支持visual studio和mingw。 有一些平台特定的代码,我应该放在#ifdef .. #endif环境中。 例如,我在这里放置了win32特定的代码: #ifdef WIN32 #include <windows.h> #endif 但我如何识别linux和mac OS? 什么是我应该使用的定义名称(或其他)? 对于Mac OS : #ifdef __APPLE__ 对于Windows上的MingW : #ifdef __M

Fastest way to check if a file exist using standard C++/C++11/C?

I would like to find the fastest way to check if a file exist in standard C++11, C++, or C. I have thousands of files and before doing something on them I need to check if all of them exist. What can I write instead of /* SOMETHING */ in the following function? inline bool exist(const std::string& name) { /* SOMETHING */ } Well I threw together a test program that ran each of these met

使用标准C ++ / C ++ 11 / C来检查文件是否存在的最快方法?

我想找到最快的方法来检查标准C ++ 11,C ++或C中是否存在一个文件。我有数千个文件,在对它们做某些事情之前,我需要检查它们是否都存在。 我可以在下面的函数中写什么而不是/* SOMETHING */ ? inline bool exist(const std::string& name) { /* SOMETHING */ } 那么我把一个测试程序扔在一起,每个这样的方法运行10万次,一半是存在的文件,另一半是没有的文件。 #include <sys/stat.h> #include <unistd

platform library for file system events?

I'm working on a cross-platform file management application that monitors various local and network file systems on Linux, Windows and Mac OS X. We've begun work on our own library to wrap the OS file system events such as inotify and the equivalent on Windows, but I'm asking myself if there isn't already a readymade solution available. Ideally we would like to capture file syst

文件系统事件的平台库?

我正在研究跨平台的文件管理应用程序,该应用程序可以监视Linux,Windows和Mac OS X上的各种本地和网络文件系统。我们已经开始在自己的库上工作,以包装操作系统文件系统事件,如inotify和相当于Windows,但我问自己是否还没有现成的解决方案。 理想情况下,我们希望在所有三个平台上捕获文件系统事件,如果有一个简单的策略模式技术来注入您自己的监控策略,那将会很好。 Qt可能有你正在寻找的东西: http://doc.qt.io/qt

C++ cross platform build automation

I have a cross platform C++ project that targets and successfully compiles on Linux, OSX and Windows. I'm using GNU Make to handle the building on all platforms, gcc for compiling under Linux & OSX and cl.exe to compile under Cygwin on windows. My current workflow consists of coding under OSX and then building on each individual platform to test code portability. This process is somewh

C ++跨平台构建自动化

我有一个跨平台的C ++项目,目标是在Linux,OSX和Windows上成功编译。 我使用GNU Make来处理所有平台上的构建,在Linux和OSX下编译gcc,在Windows下使用cl.exe编译Cygwin。 我目前的工作流程包括在OSX下进行编码,然后在每个平台上构建测试代码可移植性。 这个过程有点费时,我想知道是否可以在一个步骤中自动构建所有平台? 如果我正确理解OP,问题不在于取代make,而是如何在每个平台上启动构建? 我建议使用http://jen

C++ cross platform code

We our going to start a new project in our small team: It's a library which will be used by our other projects (in Linux and Windows). It's not platform dependent logically (it's not using any system calls or anything like that). It has to be compiled on various platforms (including Windows and Linux at least). Unfortunately, non of our developers ever wrote any code in any ot

C ++跨平台代码

我们将在我们的小团队中开始一个新项目: 这是一个将被我们其他项目(Linux和Windows)使用的库。 它不是依赖于逻辑平台的(它不使用任何系统调用或类似的东西)。 它必须在各种平台上进行编译(至少包括Windows和Linux)。 不幸的是,我们的开发者中没有一个在Windows以外的任何平台上编写过任何代码! 因此,我必须给他们一个“这样的代码”或“不是这样的代码”列表,所以代码将保持跨平台。 任何指导? 增加可移植