Articles of c + +

CBitmap :: LoadBitmap()拒绝加载资源

我正在处理一个包含位图资源的DLL。 我通过Visual Studio中的资源视图导入了该位图。 该DLL还会导出一个具有试图加载位图的函数的类: BOOL CMyExportedClass::Create(CWnd* pParentWnd /*= NULL*/) { if (!m_bitmap.LoadBitmap(IDB_BITMAP1)) return FALSE; // … } 从MFC应用程序我加载DLL。 在应用程序InitInstance()函数内部,我调用一个最终调用CMyExportedClass::Create()的DLL的导出函数。 但是, LoadBitmap()总是返回0 ,根据文档指出内存不足(不是这种情况)或资源不存在。 位图文件是我的DLL项目的一部分, IDB_BITMAP1在.rc文件中以及在resource.h中定义 : MyDLL.rc: IDB_BITMAP1 BITMAP "res\\mybitmap.bmp" RESOURCE.H: #define IDB_BITMAP1 1034 我已经检查过,ID只定义了一次。 FWIW:在调用LoadBitmap() ,DLL InitiInstance()函数已经成功返回。 LoadBitmap()拒绝加载资源的原因是什么?我该如何解决这个问题? 编辑: 我可以成功加载资源,而不是m_bitmap.LoadBitmap(IDB_BITMAP1)我做到以下几点: HBITMAP hBitmap = (HBITMAP)LoadImage(hCurrentModule, MAKEINTRESOURCE(IDB_BITMAP1), IMAGE_BITMAP, 0, 0, 0); if(hBitmap) m_bitmap.Attach((HBITMAP)hBitmap); 那么CBitmap::LoadBitmap()和LoadImage()函数在这里有什么LoadImage()呢?

什么是WINAPI_FAMILY_ONECORE_APP?

我正在通过GitHub微软的OpenSSL端口。 一个提交引起了我的注意,那就是添加Win10通用平台支持 。 在提交中,出现了名为WINAPI_FAMILY_ONECORE_APP的分区。 不过,在search时我并没有find太多的东西。 英文有两首,中文有二十二首(见下)。 以下Visual Studio Tools for Windows 10 Preview中的新function提供了一些没有任何解释的准点符号: 新的API分区WINAPI_FAMILY_ONECORE_APP ARM 64 通用CRT … 我有两个问题: 什么是WINAPI_FAMILY_ONECORE_APP ,以及如何使用它? 我可以使用WINAPI_FAMILY_ONECORE_APP 检测Windows 10小工具上的Aarch64 / ARM64吗? 这里是微软在OpenSSL中的使用( 从ssl/dtls1.h ; C ++注释被移到了define的可读性之上): // winsock.h not present in WindowsPhone/WindowsStore, defining the expected struct here #if defined(WINAPI_FAMILY) && ( WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP || WINAPI_FAMILY==WINAPI_FAMILY_PC_APP || WINAPI_FAMILY==WINAPI_FAMILY_ONECORE_APP) struct next_timeout { long […]

在Windows上使用C ++进行声音处理 – 向正确的方向发展

我想编写一个非常具体的简单的声音编辑器:剪切和重新粘贴一个audio文件(这将包含口语散文),使每个句子重复N次。 (这是外语学习。) 我不想使用现有的声音编辑器,因为我想专门为这个狭窄的任务量身定制GUI,将动作和点击的数量降到最低。 不幸的是我没有任何经验来处理声音。 我想知道在Windows上的C ++库/ API的build议,使我能够: 读取audio文件(mp3或wav) select“从这里”到“这里” 听这个 附加到一个新的文件 把所有的东西写成mp3(或者至less是wav) 任何一般的想法都是非常受欢迎的(对我来说,这是完全未知的领域,所以如果你有任何绊脚石和错误,你不想别人重复,请分享)。

桌面图标操作 – 如何启用图片旋转主题时获取SysListView32的句柄

我试图在桌面上移动图标,一切都很好,直到select了图片旋转的主题。 使用基本的Windows 7主题, SysListView32是SHELLDLL_DefView子代,而SHELLDLL_DefView又是Progman 。 但是,当选取图片旋转桌面主题时, SysListView32变成SHELLDLL_DefView子WorkerW ,而SHELLDLL_DefView又变成了WorkerW子WorkerW 。 有超过1个。我应该如何去寻找正确的HWND指向正确的WorkerW 。 枚举所有的桌面窗口,并检查每个类名WorkerW? [DllImport("user32.dll", SetLastError = true)] static extern IntPtr GetWindow(IntPtr hWnd, GetWindow_Cmd uCmd); [DllImport("user32.DLL")] public static extern IntPtr FindWindowEx(IntPtr hwndParent,IntPtr hwndChildAfter, string lpszClass, string lpszWindow); [DllImport("user32.dll", SetLastError = true)] static extern IntPtr FindWindow(string lpClassName, string lpWindowName); enum GetWindow_Cmd : uint { GW_HWNDFIRST = 0, GW_HWNDLAST […]

在浏览器中打开URL并以自动方式拍摄图像快照

我想知道是否有任何方式,我们可以在浏览器(即Firefox或谷歌浏览器)编程启动一个url,并采取网页的快照。 如果这可以在Linux环境下完成,那将是非常棒的。 我没有任何带头如何去做; 我也可以在C#中标记这个 – 我也愿意以Windows为基础的方法

如何debugging挂起的WPF应用程序?

我有一个挂在一个用户的机器上的WPF应用程序。 其他用户不受影响。 该应用程序挂起运行本身的开发环境,同时在debugging运行。 这个问题可以被可靠地重现,只要用户试图去做就会挂起。 在debugging下运行没有线索,没有任何exception,应用程序只是停止响应。 我有什么select来debugging呢? 是否有任何外部工具 – 像sysinternals套件的东西 – 可以帮助? 是否有任何Visual Studiodebugging器技巧或技巧,可能会提供更多的信息?

读取内存时出现访问冲突

背景 我正在用Visual Studio 2013 Community Edition编写命令行C ++程序。 它通过LDAP连接到Active Directory服务器,并在一些属性(例如:办公地点,部门)中检索唯一值列表。 问题 该程序编译好,但我遇到一个内存访问问题,当我运行它: Unhandled exception at 0x74EDC6B1 (Wldap32.dll) in LdapSearchResultTest1.exe: 0xC0000005: Access violation reading location 0xCCCCCCCC. 这是我第一次使用C ++与外部库,所以我不知道如何甚至接近debugging(通常我为Android写Java)。 我花了一天的更好的时间来看看这个问题,并根据类似问题的答案尝试一些想法,但是我仍然无法解决这个问题。 确切的问题在于这个函数调用的最后一个参数: // Do the search int searchReturnCode = ldap_search_s( ldapSession, &searchBase[0], LDAP_SCOPE_SUBTREE, filter, pAttributes, 0, &pSearchResults); // Error is here 我的代码 我的代码是基于MSDN网站的一个例子,我已经在代码中复制了这个例子。 这是一个certificate这个问题的SSCCE : #include<iostream> #include<Windows.h> #include<Winldap.h> #include<WinBer.h> […]

testingWindows应用程序的运行状况

我有几个应用程序是我们工作室的各种开发人员使用的一套工具的一部分。 这些应用程序主要是打开DOS cmd shell的命令行应用程序。 这些应用程序反过来启动一个GUI应用程序,跟踪这些命令行应用程序的输出和状态(通过套接字)。 命令行应用程序可以在用户login时启动,当他们的工作站被locking(他们触发一个batch file,然后立即locking他们的工作),并当他们注销(通过计划的任务)。 我所遇到的问题是最后两种情况。 如果这些应用程序中的任何一个在用户被locking或注销时触发,这些命令将产生跟踪输出/状态的GUI窗口。 这很好,但是说用户的工作站被locking – 当他们解锁工作站时,GUI不可见。 它正在运行任务列表,但不可见。 下一次这些用户运行一些命令行应用程序时,GUI不会启动(因为它已经在运行),但是由于在桌面上不可见,所以用户看不到任何输出。 我正在寻找的是从我的命令行应用程序中分辨出是否在locking的工作站后面运行或用户注销(通过计划的任务)的方式 – 基本上它们在没有用户桌面的情况下运行。 如果我可以说,那么我可以简单地启动我们的GUI,并可以防止很多问题。 我需要testing的这些应用程序是C / C ++ Windows应用程序。 我希望这是有道理的。

如何强制Windows FAT32驱动程序重新加载FAT表?

我正在实现自定义的Windows磁盘驱动程序,并且需要FAT32的Windows驱动程序重新加载FAT表,1和2,这是低于数据部门。 如何做到这一点? 我需要更快的方法,而无需卸载驱动器。 为什么我这样做是因为磁盘是内存虚拟磁盘,在访问扇区过程中从networking中获取数据。 我在即时编写目录数据,它的工作,但不是文件 – 因为在驱动程序获取FAT时 – 群集是免费的,所以文件无法正常工作。 我disasemblefastfastfat.sys,发现了一些要点…至less我发现设备的ioctl代码,可能会重新加载胖表,我会张贴在这里,如果我成功了。

创build暂停/可恢复线程的最佳方法是什么?

我正在做一些networking编程的微处理器发送低缓冲区通知,我有一个线程,写一个设置的信息量。 完成后,需要进入挂起状态并等待低缓冲区通知恢复。 使用Windows的线程池API,还是使用CreateThread()创build的线程更好?