Articles of c + +

Windows窗体+ Excel工作表

我已经构build了一个从Excel工作表中检索信息的Windows应用程序。 我已经testing过,并且在安装了Microsoft Office Package的计算机上工作。 我现在有一个小问题,我将这个程序部署到多个工作站,但他们已经安装了OpenOffice。 我的问题是,这些工作站是否需要安装Microsoft Office,或者不pipe它是否工作? 谢谢你们。

WPF主应用程序停止响应,如果一个子窗口正在移动

我们有一个用C#编写的应用程序,使用WPF。 它有一个基于计时器的激活事件,导致在DirectX上下文中绘制一些graphics。 一切似乎都好,直到我们打开子窗口,并在屏幕上移动它。 时机似乎与计时器被解雇一致,但在那一刻,整个屏幕(甚至其他应用程序)似乎冻结,用户无法点击任何地方。 如果按下ALT + TAB组合键,正常操作将从完全相同的地方恢复。 在冻结状态期间,CPU /内存利用率没有上升,这导致我怀疑在主线程上存在某种阻塞。 通常情况下,如果我的应用程序在某些操作的中间挂起,我会去按Visual Studio的暂停,并在debugging器中看到线程视图。 这给了我足够的想法,哪个呼叫是罪魁祸首。 但在这种情况下,如果我按ALT + TAB切换到IDE,我的应用程序恢复正常执行。 如果我把我的IDE放在第二个屏幕上,并尝试点击(不需要按ALT + TAB),它也会被冻结(正如我之前提到的,整个桌面似乎被冻结到鼠标点击。正常) 任何人都面临/意识到类似的问题,我怎么可以继续debugging呢?

将窗口捕获为没有运行Windows UI的图像

我从前面的问题已经意识到,当没有活跃的用户login时,我无法屏幕截图。 但是,我想知道是否有可能从一个窗口“转换”成一个图像从内存不用Windows UI的运行? 感谢所有的帮助。 更新 只是为了澄清,我认为需要发生的是以某种方式触发对窗口的重绘,并以某种方式将其绘制到文件而不是屏幕。 我不确定如何以这个事件开始,但任何想法?

获取当前可执行文件目录在testing用具下失败

我的应用程序使用LoadLibrary , GetProcAddress和FreeLibrary实现了一个sorting的插件体系结构。 由于我的所有dll都与可执行文件位于同一个目录,所以当我查找一个dll的时候,我得到了可执行文件的目录并使用这个函数在那里search: string FileSystem::GetPathToProgramDirectory(){ char progname[MAX_PATH]; GetModuleFileNameA( NULL, progname, MAX_PATH ); PathRemoveFileSpecA( progname ); return string( progname ); } 这对生产有效,但是当我尝试在使用NUnit的集成testing下运行时,可执行目录最终变成了NUnit,所以加载失败。 请记住,这是非托pipe的C ++; 在托pipe的C + +我解决了这个使用Path::GetDirectoryName(Assembly::GetExecutingAssembly()->Location) ,在这两种情况下工作,但非托pipe案件让我难住。 有没有一个非托pipe的Winapi等价物?

将文件path从Windows转换到Linux,然后再使用boost :: filesystem

是我,还是boost :: filesystem :: path :: make_preferred没有将“\”转换为“/”? davidan @ kempt:〜/ Documents / prog / work!$ ../practice/./path_info c:\ pitou foo / bar \ baa.txt 组成path: cout << ————-:“c:pitou / foo / bar \ baa.txt” make_preferred()———-:“c:pitou / foo / bar \ baa.txt” 我很希望 C:\鼻头\富\酒吧\ baa.txt 在窗户和 /pitou/foo/bar/baa.txt (或者closures)在POSIX上 源代码在这里: boost :: filesystem教程

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为基础的方法