Articles of c + +

枚举窗口时发生

试图运行以下代码时遇到问题: #include "header.h" int main() { id = GetCurrentProcessId(); EnumWindows(hEnumWindows, NULL); Sleep(5000); //MoveWindow(hThis, 450, 450, 100, 100, TRUE); system("pause"); return 0; } //header.h #include <cstdio> #include <cstdlib> #include <iostream> #include <Windows.h> using namespace std; DWORD id = 0; HWND hThis = NULL; BOOL CALLBACK hEnumWindows(HWND hwnd, LPARAM lParam) { DWORD pid = 0; pid = […]

编程添加路线

我写了一个简单的实用程序,为特定的接口添加一个路由。 代码很简单: using System; using System.Diagnostics; using System.Net.NetworkInformation; using System.Text; class Program { static void Main(string[] args) { const string firstConnection = "xxxx.yyyyy"; const string routeAddMask = "route add XX.XX.XX.XX mask 255.255.255.255 XXX.XXX.XXX.XXX METRIC 99 IF {0}"; StartProcess("rasdial", firstConnection); var interfaceId = GetInterfaceId(firstConnection); string routeAdd = string.Format(routeAddMask, interfaceId); StartProcess("route", routeAdd); } private static int GetInterfaceId(string […]

在当前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。 毕竟,我仍然得到同样的错误,以及一些其他的错误。 这是一个有问题的源文件的屏幕截图。 这些是我的设置。 对于这条路,我曾尝试过和没有尾随的正斜杠。