Articles of c + +

为什么fopen无法打开存在的文件?

我在Windows XP上使用Visual Studio 6(是的,我知道这是旧的)build立/维护一个C + + DLL。 我遇到了打开一个现有的文件无法打开的问题,它总是返回NULL。 我试过了: 检查errno和_doserrno通过设置为零,然后再次检查它们都保留为零,因此GetLastError()报告没有错误。 我知道fopen在按照C标准遇到错误时不需要设置errno。 硬编码的文件path,这是不相关的。 试了另一个开发者机器,结果相同。 真正奇怪的是CreateFile的作品和文件可以读取文件。 我们相信这是一个发布版本,但是我们在应用程序的其他领域也看到了一些非常奇怪的行为,我们不确定这是否是相关的。 代码如下,我没有看到任何奇怪的,它看起来相当标准的我。 源文件在半年之内没有改变。 HRESULT CDataHandler::LoadFile( CStdString szFilePath ) { //Code FILE* pFile; if ( NULL == ( pFile = fopen( szFilePath.c_str(), "rb") ) ) { return S_FALSE; } //More code }

奇怪的opengl渲染口吃

我在简单的opengl(通过GLFW3)应用程序遇到一个奇怪的口吃。 尽pipe启用了vsync(帧速率几乎稳定在60 fps),但是旋转三angular形的运动并不总是平滑的 – 这就像有时会跳过某些帧。 我试图看看连续调用glSwapBuffers()之间的时间差,但这些看起来相当一致。 难道我做错了什么? 我应该使用某种运动模糊滤镜来使其看起来更stream畅吗? 代码: #include <cstdlib> #include <cstdio> #include <cmath> #include <cfloat> #include <cassert> #include <minmax.h> #include <string> #include <iostream> #include <fstream> #include <vector> #include <Windows.h> #include <GL/glew.h> #include <gl/GLU.h> //#include <GL/GL.h> #include <GLFW/glfw3.h> #include <glm/glm.hpp> #include <glm/gtc/type_ptr.hpp> #ifdef _WIN32 #pragma warning(disable:4996) #endif static int swap_interval; static double frame_rate; GLuint […]

使用CLion的OpenCV Windows安装程序

我想在Windows上为CLion IDE设置OpenCV。 我用OpenCV 3.1和2.4尝试了相同的结果。 我有Windows 10 64位。 CLion使用cygwin environement。 我到目前为止做了什么: 1.从OpenCV下载exe并运行它(它提取了一个包)。 我的path是E:/ opencv 2.添加OpenCV_DIRvariables并将其添加到path 3.添加到我的项目CMakeLists.txt: set(OpenCV_LIB_PATH E:/opencv/build/x64/vc12/lib) set(OpenCV_LIB_DIR E:/opencv/build/x64/vc12/lib) set(OpenCV_LIBS E:/opencv/build/x64/vc12/lib) set(CMAKE_PREFIX_PATH E:/opencv/build) set(OpenCV_DIR E:/opencv/build/x64/vc12) include_directories(E:/opencv/build/include) FIND_PACKAGE(OpenCV REQUIRED) target_link_libraries(good ${OpenCV_LIBS} ) 我设法在我的程序中使用OpenCV Mat(库是可见的),但试图打开图像时收到错误。 我的程序是:(只是一个例子) #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <iostream> using namespace cv; using namespace std; int main( int argc, char** argv ) { string […]

有没有办法一个非高架的进程可以复制文件到受保护的目录?

我很好,它要求用户boost准备复制文件时。 需要进行复制的程序不能运行(它会丢失许多重要的环境variables,我无法改变它的启动方式)。 我的后备将会产生一个实际上做文件拷贝的高程的过程,但是我不想为另一个exe文件添加另一个exe文件。

检测多个显示器并为每个设置单独的壁纸

我正在开始一个项目,为有多台显示器的电脑制作墙纸旋转器。 1)如何检测窗口中的监视器和相关的分辨率 2)我将如何设置每个显示器的图像。 我要制作一个一起制作的图像,还是要单独设置每个图像? 谢谢

使用OpenFileDialog作为目录,而不是FolderBrowserDialog

我想在我的应用程序中有一个文件夹浏览器,但我不想使用FolderBrowserDialog。 (有几个原因,比如使用很痛苦) 我想使用标准的OpenFileDialog,但是对目录进行了修改。 例如, μTorrent有一个很好的实现(首选项/目录/把新的下载:)。 标准的打开文件对话框使用户能够: 在底部的文本字段中粘贴完整path 使用Vista上的“collections夹链接”栏 在Vista上使用search 自动记住上一个目录 更多… 有谁知道如何实现这个? 在C#中。

错误1001:指定的服务已存在。 无法删除现有的服务

我有一个服务。 我刚刚安装了它。 我需要对服务进行更新。 我去了添加/删除程序,并寻找我的服务,并没有安装在那里。 我看着services.msc,它在那里,停下来。 我能够开始并停止它。 我以pipe理员的身份运行了一个命令提示符,运行sc delete [服务名称],并收到“指定的服务不作为已安装的服务存在”。 我在命令提示符下执行了一个sc查询,并且不返回。 我右键单击安装程序,单击卸载并收到“此操作仅适用于当前安装的产品”。 我也尝试修复,并得到相同的消息。 我重新启动了机器几次,没有运气得到这个服务卸载。 我正在使用Visual Studio安装的基本安装项目模板。 我试过改变程序的名字,并增加版本号。 如何卸载显然存在的服务,并防止将来发生这种情况?

从GetAdaptersAddresses()获取IP_ADDRESS_STRING?

GetAdaptersAddresses()将以IP_ADAPTER_UNICAST_ADDRESS格式获取地址,其格式如下: typedef struct _IP_ADAPTER_UNICAST_ADDRESS { union { struct { ULONG Length; DWORD Flags; } ; } ; struct _IP_ADAPTER_UNICAST_ADDRESS *Next; SOCKET_ADDRESS Address; IP_PREFIX_ORIGIN PrefixOrigin; IP_SUFFIX_ORIGIN SuffixOrigin; IP_DAD_STATE DadState; ULONG ValidLifetime; ULONG PreferredLifetime; ULONG LeaseLifetime; UINT8 OnLinkPrefixLength; } IP_ADAPTER_UNICAST_ADDRESS, *PIP_ADAPTER_UNICAST_ADDRESS; 似乎build议人类可读IP地址string的唯一字段是Address,它是一个SOCKET_ADDRESS结构,定义如下: typedef struct _SOCKET_ADDRESS { LPSOCKADDR lpSockaddr; INT iSockaddrLength; } SOCKET_ADDRESS, *PSOCKET_ADDRESS; 其中,反过来,使用另一种结构,SOCKADDR,定义为: 对不起,这是复杂的方式张贴在这里,因为它取决于IPv4与IPv6和Windows版本…所以这里是一个链接到定义: http://msdn.microsoft.com/en-us/library/ms740496%28v=VS.85%29.aspx 如果你还没有像我那样头晕目眩,并通过这个定义的迷宫,你可能会注意到,这是一个噩梦来检索一个IP地址的旧的虚线string样式,因为它使用GetAdaptersInfo()更容易, […]

如何捕捉窗口中的数据

我的机器上安装了一个桌面应用程序。 当我启动一个程序时,某种窗口会打开。 让我们说,这样的事情(只是例子): 所以,我想用C#编写一个应用程序,它会find这个窗口并从中捕获一些数据。 我应该看什么工具? 我想走一条阻力最小的路。 我需要从文本框中捕获图像,文本,还可以通过文本查找控件并单击它们。

在VS 2015和VS 2013上运行相同代码的问题

在Visual Studio 2013和2015中运行一段代码时,会得到两个不同的结果。 在Visual Studio 2015上,我得到一个NullReference,在2013年,它的工作方式应该如此。 此外,Visual Studio 2015在Windows 8.1和Windows 8.1上运行。 这段代码是: private static T FindParentOfType<T>(DependencyObject o) { dynamic parent = VisualTreeHelper.GetParent(o); return parent.GetType().IsAssignableFrom(typeof(T)) ? parent : FindParentOfType<T>(parent); } 代码被调用: Grid RiskGrid = FindParentOfType<Grid>(ChampViewModelSel); 错误是一个Nullreference当它检查IsAssginableFrom因为在VS2015中,它find了一个Canvas而不是在VS2013中find的希望的Grid? 堆栈跟踪 StackTrace " at Microsoft.CSharp.RuntimeBinder.SymbolTable.GetOriginalTypeParameterType(Type t)\r\n at Microsoft.CSharp.RuntimeBinder.SymbolTable.AreTypeParametersEquivalent(Type t1, Type t2)\r\n at Microsoft.CSharp.RuntimeBinder.SymbolTable.LoadMethodTypeParameter(MethodSymbol parent, Type t)\r\n at Microsoft.CSharp.RuntimeBinder.SymbolTable.LoadSymbolsFromType(Type originalType)\r\n at […]