Articles of c + +

在当前OpenCV中的lib文件夹(或其replace)在哪里?

我正在为一个为旧版OpenCV编写的书(PACT的OpenCV 2计算机视觉),它告诉我在创build一个新的属性表时在我的Visual Studio 2013 Property Manager中包含lib文件夹。 在当前的GitHub版本(opencv-master,OpenCV 3.1.x)中没有看到名为lib的目录。 这个文件夹是否被别的东西取代了? 我用cmake构build了OpenCV。 我发现一个4岁的未答复的问题,其中有人也在寻找这个文件夹。 他们试图从另一个不再存在的目录中build立图书馆,但是这对他们来说不起作用。 另一位OpenCV用户告诉我,GitHub不包括库,所以你必须在本地制作。 我仍然不清楚我在哪里/如何制作它们。 我意识到预构build的二进制文件有这个,但我避免它们,因为我需要opencv_contrib中的SURF函数,所以我需要从源代码构build它。

如何编译在Windows源代码curl?

我在这个答案下build议了这个问题

为什么cvWaitKey(0)不起作用?

我不知道为什么,但出于神秘的原因,我的c + +应用程序不再等待,当它达到cvWaitKey(0)它只是通过这条线,就像这个函数什么都不做! 我也试过cvWaitKey(100000),它不工作… void main() { cvWaitKey(0); return; } 我的项目有点复杂,我使用Visual Studio 2010,它包括opencv ffmpeg pthread winsocks和一些其他库。 你能猜到为什么会这样?

MinGW可以毫不费力地复制大多数Unix系统调用吗?

背景:我正在开发一个专门用于unix系统的C ++开发的大型项目,以便与windows兼容,为最终的Windows发行版做好准备。 我在Windows开发方面没有太多的经验,但是我希望在高级开发人员搬进来接pipe之前,尽我所能,做正确的事情。 问题:所以有一段时间,我一直在为所有在软件中使用的unix / posix调用寻找Windows版本,其中大部分来自dirent.h,unistd.h,还有一些在sys下,比如sys / stat .h或sys / types.h。 尽pipe修改程序以采用新的Win32 API调用约定和返回types(有时候是所有新函数)需要很多工作,但最终可能会起作用。 但是我经常看到这个问题,我猜MinGW包含许多原生的unix调用和function作为GCC环境的一部分,并且可以将它们翻译成与windows兼容的调用,以便在Windows上编译,以及在Windows上使用上述编译的程序很容易。 事实上,我在侧边栏中读到的一个类似的问题就是这个问题。 我不理解,似乎也有理解上的困难,这正是这种内置的翻译function的程度,我在哪里可以find一个系统的东西,将与此一起工作的清单。 对不起,这篇文章有些没有结构化,而且我非常青涩,但是我只有2个星期的时间才能完成这个任务,然后和一个高级开发人员交换。

如何使用PostThreadMessage从C ++closuresInternet Explorer

我试图启动iexplore.exe让它运行5秒,然后再closures它。 iexplore打开就好,但是当我调用PostThreadMessage时,它不会closures。 任何人都可以看到我做错了什么? 这是我的代码: CString IEPath = "C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE";//GetIEPath(); //IEPath += ' ' + url; std::string strCommand((LPCTSTR)IEPath); PROCESS_INFORMATION procinfo; STARTUPINFO startupinfo; GetStartupInfo(&startupinfo); CreateProcess( NULL, (char *)strCommand.c_str(),// name of executable module NULL, // lpProcessAttributes NULL, // lpThreadAttributes false, // handle inheritance option CREATE_SHARED_WOW_VDM, // creation flags NULL, // new environment block NULL, // current directory […]

在用NT DDK构build的用户模式程序中包含C ++头文件

所以…我有一个内核模式组件和一个用户模式组件,使用NT DDK 7.1.0的交钥匙构build环境。 内核组件都是.c / .h / .rc文件。 用户模式组件是.cpp / .c / .h / .rc文件。 起初,使用构build似乎是最简单的,因为我看到你可以修改用户模式组件的./sources文件来说: TARGETNAME = MyUserModeComponent TARGETTYPE = PROGRAM UMTYPE = windows UMENTRY = winmain USE_MSVCRT = 1 这似乎并没有引起问题,所以我很高兴,直到我试图#include <string> (或<memory> ,或其他)没有find的东西: 错误C1083:无法打开包含文件:“string”:没有这样的文件或目录 不过,它正在用C ++语言语义编译用户模式片断。 但是,我如何获得标准包括工作? 我在技术上不需要为用户模式部分使用DDK 构build工具。 我可以做一个视觉工作室解决scheme。 我有点担心,因为我碰到了其他的烦恼,如DDK默认使用__stdcall而不是__cdecl这个事实…没有任何编译指示或编译器开关来覆盖这个。 你真的必须进入你关心的每一个声明,并改变它,假设你有源代码这样做。 : – / 我开始怀疑这是不是只是一个分形下降到“只是因为你可以并不意味着你应该build立与DDK用户模式的应用程序,这里是龙。 所以我的问题不仅仅是关于这个特殊的技术障碍,而是如果我放弃使用DDK工具构buildC ++用户模式组件的想法…仅仅因为内核组件是纯C的。

RegCreateKeyEx()和GetLastError()

为什么RegCreateKeyEx()返回一个LONG ,而不是通过SetLastError()设置DWORD错误代码? 将它的LONG返回值转换为DWORD ,然后将它设置为SetLastError()的全局错误代码是否安全? http://msdn.microsoft.com/en-us/library/windows/desktop/ms724844(v=vs.85).aspx

无法在Visual Studio 2015中打开源文件

我正在尝试使用Visual Studio Community 2015在windows中编译OBS studio 。我在Visual Studio中创build了一个项目,并通过将这些文件拖到解决scheme资源pipe理器中将整个git repo复制到项目中。 这个项目依赖于libav,x264和curl。 它们以.lib,.dll和头文件forms提供。 问题是我不断收到“无法打开源文件”。 我有一个单独的文件夹中的dll和lib的头文件(dll和lib在同一个文件夹中)。 在项目设置 – > VC ++目录下,我添加了include目录,并且还添加了库目录。 然后我在链接器 – >input – >附加依赖关系下特别添加了这个库。 然后我将包含.dll文件的目录添加到环境variablesPATH。 毕竟,我仍然得到同样的错误,以及一些其他的错误。 这是一个有问题的源文件的屏幕截图。 这些是我的设置。 对于这条路,我曾尝试过和没有尾随的正斜杠。

一般C ++ Linux到Windows的移植问题

背景:基于networking的服务( tcp+udp ,不是http )存在即将公开发布的C++ linux客户端API。 这个客户端API使用普通的tcp套接字,udp套接字,C ++命名空间和部分stl std::map和std::vector ,并将作为一组头文件和.a和.lib文件进行链接。 问题:刚开始考虑将这个C ++客户端API移植到Windows将需要什么。 在Windows下使用gcc / g ++有意义吗? 我的第一个倾向是这是行不通的,因为Windows上的开发人员通常使用Microsoft Visual Studio套件,他们将无法链接到由gcc生成的库。 这是一个正确的假设,还是海湾合作委员会提供一些漂亮的开关,产生微软编译器和微软链接器兼容的输出文件?

如何使用C ++在Win上编写和读取UTF16文件

关于这个,关于SO有很多问题,但是大多数都没有提到写回wstring。 所以例如我发现这个阅读: // open as a byte stream std::wifstream fin("/testutf16.txt", std::ios::binary); // apply BOM-sensitive UTF-16 facet fin.imbue(std::locale(fin.getloc(), new std::codecvt_utf16<wchar_t, 0x10ffff, std::consume_header>)); // read std::wstring ws; for(wchar_t c; fin.get(c); ) { std::cout << std::showbase << std::hex << c << '\n'; ws.push_back(c); } 我尝试写类似的东西: std::wofstream wofs("/utf16dump.txt", std::ios::binary); wofs.imbue(std::locale(wofs.getloc(), new std::codecvt_utf16<wchar_t, 0x10ffff, std::consume_header>)); wofs << ws; 但它会产生垃圾,(或Notpad ++和vim不能解释它)。 […]