Articles of c + +

我怎么能告诉我用什么窗口主题?

我试图让我的应用程序强制一个主题 – 这是直接的,如下所示: http : //arbel.net/blog/archive/2006/11/03/Forcing-WPF-to-use-a-specific-Windows -theme.aspx 但是,我不知道现在使用的是什么主题。 我正在使用Windows XP的默认主题,无论可能。 那篇文章说 指定版本和公钥标记非常重要 …我在哪里得到这些信息?

在Windows上将时间string转换为纪元时间

我有一个接口,我得到一个文件,文件名是内部数据有效时的时间戳。 我正在按顺序处理这些文件,并将它们提供给另一个自1970年1月1日以来的毫秒时间的API。 所以,我以YYYYMMDD_HHmmSS.sss格式的string获取文件名,并且必须将其转化为时间。 我假设处理和收集发生在相同的时区,并且只需要将字符转换为数字。 uint64_t foo::convertFileNameToTimestamp(const std::string& filename) const { const uint64_t yyyy = atoi(filename.substr(0,4).c_str()); const uint64_t MM = atoi(filename.substr(4,2).c_str()); const uint64_t DD = atoi(filename.substr(6,2).c_str()); const uint64_t HH = atoi(filename.substr(9,2).c_str()); const uint64_t MI = atoi(filename.substr(11,2).c_str()); const uint64_t SS = atoi(filename.substr(13,2).c_str()); const uint64_t sss = atoi(filename.substr(16,3).c_str()); // number of milliseconds in a day const uint64_t DAY […]

.NET(C#):当你只有一个进程句柄或PID时获取子窗口?

一种特殊情况下的问题: 我用System.Diagnostics.Process.Start(..)启动一个进程 这个过程打开一个闪屏 – 这个闪屏成为主窗口。 启animation面closures,并显示“真实”的用户界面。 主窗口(启animation面)现在无效。 我仍然有过程对象,我可以查询它的句柄,模块等,但主窗口句柄现在是无效的。 我需要获取进程的UI(或UI处理)。 假设我不能改变这个过程的行为,以使这个更容易(或更安全)。 我在网上看了一下,但我承认我没有找一个多小时。 看起来应该有点微不足道:-(

如何强制C ++从磁盘分配内存?

我有成千上万的C ++代码行在小文本文件上运行良好,但在大文本文件(如2 GB大小)上崩溃。 崩溃的原因:应用程序吃内存。 是否可以从磁盘分配内存? 因为在大多数情况下,硬盘空间比物理内存大得多。 如果我可以从我的应用程序的硬盘借用一些空间,并在使用后返回,那么我的应用程序很less有机会崩溃。 这是我的devise思路: 创build文件映射的临时文件(CreateFileMapping,OpenFileMapping) 强制我的应用程序从临时文件分配内存 做一些清理工作:CloseFileMapping并删除临时文件 因为我有很多现有的代码,如果我的devise思想是合理的,我不想重新devise我的项目。 我不确定devise思想是否可以实现。 任何人都可以帮助我? PS:我正在使用Visual C ++ 2010。

System.Windows.Forms.TextBox中的水印

他在.Net 2.0中使用C#实现System.Windows.Forms.TextBox Watermarkfunction的最佳方式是什么? 编辑: 使用CodeProject现成的组件非常容易。 这也是一个代码项目开放许可证(CPOL)。

Windows中进程的最短保证时间是多less?

我有一个进程提供一个具有特定缓冲区大小的硬件(数据传输设备)。 我可以从Windows调度程序窗口合理的期望,以确保我没有得到一个缓冲区下溢? 我的缓冲区大小为32K,以〜800k字节/秒的速度消耗。 如果我填写16k字节的批量,每20ms一个批量。 但是,我填充的下限是多less? 如果说,我在填充循环中调用sleep(0),那么我最合适的最坏情况调度间隔是多less? OS = Windows XP SP3双核2.2Ghz 请注意,我正在进行API调用以检查缓冲区填充级别以及对驱动程序API的调用以将其传递给数据。 我假设这些是Windows除了睡眠(0)之外可以使用的调度点。 我想(作为一个过程)performance出色,仍然能够实现我的实时期限。 机器专门负责此任务,但需要通过networking接收数据并将其发送到IO设备。 我对调度程序的性能有什么期望? 还有什么我需要考虑。

使用Metro风格的应用程序启动桌面应用程序

有没有办法在Windows 8上从Metro风格的应用程序启动桌面应用程序? 我正在尝试创build一些桌面应用程序的简单快捷方式来replace开始屏幕上的桌面图标,这看起来不合适。 我只是需要一些超级简单的东西,最好在C#中,在应用程序加载后立即打开一个应用程序。 我打算为某些游戏,Photoshop等制作这些快捷键,而不是我自己做的任何东西。 他们也只是个人使用,所以我可以使用直接path应用程序,如"C:\Program Files (x86)\Steam\steamapps\common\Skyrim\TESV.exe"

升级到g ++ 4.7(支持c ++ 11):任何ABI不兼容?

在Windows上,当使用g ++ 4.6(mingw)和-std = c ++ 0x并且与第三方静态库(由供应商提供用于mingw)连接时,应用程序工作正常。 当我切换到g ++ 4.7.2(mingw),以便我可以使用-std = c ++ 11时,应用程序生成良好,但运行时崩溃。 如果我打电话给供应商提供的库,那么它不会崩溃。 我问图书馆供应商的客户支持,被告知这不被支持。 我的问题是,“有没有任何ABI不兼容”,当去一个新版本的g ++编译器? 它不是向后兼容吗? 编译器的新版本是否应该与现有的和传统的第三方静态库一起工作? 请注意,这只发生在Windows(mingw)平台上。 在Linux上运行良好。 我已经添加了更多的信息: 有没有人在Windows应用程序中使用Chilkat的MinGW C ++(静态)库,其源代码是用g ++ 4.7.2和-std = c ++ 11编译选项编译的? 应用程序崩溃时,奇尔卡特API被访问(例如CkString对象被实例化)。 适用于g ++ 4.6.2(我使用std = c ++ 0x)。 在Linux上用g ++ 4.7.2这个程序工作正常。 如果从4.6.2移到4.7.2有ABI不兼容,那么它也不能在Linux上工作,对吗? 为什么供应商为了使用MINGW而创build的静态库chilkat-9.3.2 / lib / libchilkat.a会关心程序的其余部分是否使用最新的g ++编译器编译—这是ABI中MINGW特有的变化吗? #include <windows.h> #include <stdio.h> #include […]

知道.lib是静态还是导入

我有从C代码编译的.lib文件。 我怎么知道这个独立的静态库,或只是一个导入库和DLL将在运行时需要? 有一些我丢失的dumpbin选项吗?

在Windows桌面应用程序中是否有任何API函数来获取电池电量?

我正在创build一个桌面应用程序,我想要获得我的设备(笔记本电脑)的电池电量。 我正在使用C#。 有什么方法可以帮助我做到这一点? 我已经在Windows Phone 8平台上使用Windows.Phone.Devices.Power.Battery.GetDefault().RemainingChargePercent完成了这个工作Windows.Phone.Devices.Power.Battery.GetDefault().RemainingChargePercent 。 桌面端有没有类似的API?