Articles of c + +

QProcess :: startDetached()不显示控制台窗口

我有一个GUI程序,通过单击button启动cli程序。 我想看看控制台窗口,不需要等到cli程序结束。 所以我使用这样的代码: QProcess::startDetached("cmd.exe"); 点击button后,我看不到控制台窗口。 但是请参阅任务pipe理器中的cmd.exe进程。 我尝试过使用system()命令,但它在cli程序结束之前冻结了我的应用程序。 有没有办法让窗口可见?

Windows中的C ++高精度时间测量

我感兴趣的是使用Windows中的C ++测量特定的时间点到纳秒。 这可能吗? 如果不是,至less可以在几微秒内得到具体的时间吗? 任何图书馆都应该这样做,除非我认为托pipe代码是可能的。 谢谢

修改正在运行的可执行文件的资源内容

所有, 我将我的应用程序设置存储在资源中。 当我的程序第一次加载时,我使用WinAPI读取指定的资源。 然后我parsing检索到的字节数据。 这对我来说完美无瑕。 现在让我们说一个用户在我的应用程序中改变一个设置。 他/她检查一个checkbox控件。 我想将更新的设置保存到我的资源。 但是,我的应用程序运行时,似乎我的UpdateResource调用不起作用。 即使尺寸相同,我也无法修改资源数据。 首先,是否可以修改正在运行的图像的资源数据? 其次,如果这是不可能的,我有什么替代scheme可以在我的应用程序内部存储设置? 注:我必须有我的运行可执行文件中的设置。 他们不能在硬盘上或在registry中。 请不要build议作为一个选项。

编程方式鼠标在另一个窗口中单击

是否可以通过编程方式在另一个窗口中单击某个位置,而无需将鼠标移动到该位置,即使窗口不在顶部? 我想发送一种消息到另一个窗口模拟鼠标点击一个位置。 我试图用PostMessage完成这个工作: PostMessage(WindowHandle, 0x201, IntPtr.Zero, CreateLParam(300,300)); PostMessage(WindowHandle, 0x202, IntPtr.Zero, CreateLParam(300,300)); 我这样做了CreateLParam函数: private static IntPtr CreateLParam(int LoWord, int HiWord) { return (IntPtr)((HiWord << 16) | (LoWord & 0xffff)); } 问题是窗口被locking在他的位置上。 我认为我的应用程序点击(1,1)坐标。 可以帮助我解决这个问题吗? 编辑:这是PostMessage: [return: MarshalAs(UnmanagedType.Bool)] [DllImport("user32.dll")] public static extern bool PostMessage(IntPtr WindowHandle, int Msg, IntPtr wParam, IntPtr lParam); 而0x201和0x202分别是WM_LBUTTONDOWN和WM_LBUTTONUP。

c中的时间戳,精确到毫秒

我相对较新的C编程和即时工作,目前在一个项目,这需要非常准确的时间,因此我试图写一些东西,以毫秒的精度创build一个时间戳。 这似乎工作,但我的问题是这样的方式是正确的方式还是有一个更简单的方法? 这是我的代码: #include<stdio.h> #include<time.h> void wait(int milliseconds) { clock_t start = clock(); while(1) if(clock() – start >= milliseconds) break; } int main() { time_t now; clock_t milli; int waitMillSec = 2800, seconds, milliseconds = 0; struct tm * ptm; now = time(NULL); ptm = gmtime ( &now ); printf("time before: %d:%d:%d:%d\n",ptm->tm_hour,ptm->tm_min,ptm->tm_sec, milliseconds ); /* […]

用GDI +和C ++减less闪烁

我在C ++ / MFC应用程序中使用GDI +,而且我无法避免在窗口大小调整的情况下闪烁。 我已经尝试了这些步骤: OnEraseBkGnd()返回TRUE; 在OnCtlColor()上返回NULL; 根据这个代码使用双缓冲: void vwView::OnDraw(CDC* pDC) { CRect rcClient; GetClientRect(rcClient); Bitmap bmp(rcClient.Width(), rcClient.Height()); Graphics graphics(&bmp); graphics.DrawImage(m_image, rcClient.left, rcClient.top); Graphics grph(pDC->m_hDC); grph.DrawImage(&bmp, 0, 0); } 难道我做错了什么? 或者有另一种方法来实现这一目标?

c – realloc()在Windows 7中成功,但在Windows XP中失败,为什么?

所以我的代码有以下realloc块: char **ptr = NULL; void realloc_ptr(unsigned int new_size) { void *temp = NULL; temp = realloc(ptr, new_size * sizeof(*ptr)); if(temp != NULL) { ptr = temp; } else { exit(EXIT_FAILURE); } } 在调用此函数之前, new_size会递增。 这个数组总是只能被扩展。 而且,我的代码中new_size从不超过3(现在)。 现在上面的realloc调用在我的Windows 7testing期间工作正常。当我在XP中testing这个代码时,上面的代码会成功3次,然后它会在第四次抛出一个exception。 当我回到代码(这台计算机没有代码)时,我会发布确切的exception。 我猜测我的内存太碎,系统无法分配连续的内存块。 我testing了我的内存泄漏代码,并修复了所有这些(我希望)。 任何想法为什么发生这种情况? 编辑: 当我使用Doug Lea的malloc.c时,上述问题就消失了。 但我仍然想知道为什么会发生这种情况。 谢谢!

包含头文件时,path是否区分大小写?

鉴于这个目录树: src/MyLibrary/MyHeader.h src/file.cpp file.cpp: #include "mylibrary/myheader.h" … 编译file.cpp与VS一起工作,在gcc中失败。 标准说什么? 如果path区分大小写,为什么这是明智的? 什么是最好的做法,保持所有文件/文件夹名称小写,因此包括时做相同? 谢谢。

在WinForms中如何处理隐形控件?

我试图重写.NET Compact Framework中窗体的OnPaint事件。 到目前为止,我可以用渐变,圆angular矩形等来绘制控件,而这些控件通常不能用于常规控件。 但是,当我想要使控制无形时,我遇到了问题。 现在,我所做的是重新绘制除了那些看不见的控件之外的所有控件。 由于需要一点时间,所以会导致一些闪烁。 有谁知道Windows如何处理绘画“隐形”的控制? 或者你可以build议任何algorithm或方法如何实现这一点。

冒充Windows用户

我正在使用代码来模拟用户帐户来访问文件共享。 public class Impersonator : IDisposable { #region Public methods. // —————————————————————— /// <summary> /// Constructor. Starts the impersonation with the given credentials. /// Please note that the account that instantiates the Impersonator class /// needs to have the 'Act as part of operating system' privilege set. /// </summary> /// <param name="userName">The name of the […]