草庐IT

c++ - 如何正确移动带有区域的窗口?

我刚刚开始研究窗口区域,我正在尝试创建一个椭圆形窗口,我可以通过拖动客户区来移动它。不幸的是,当我拖动窗口时,窗口从椭圆形到正常窗口来回闪烁(好像我从未调用过SetWindowRgn),然后又快速地反复闪烁。我在MSDN上读到我必须调用SetWindowRgn(nullptr);,然后移动窗口,然后重置区域,我已经在我的代码中完成了。我通过使用SWP_NOZORDER、SWP_NOSIZE和SWP_NOREDRAW调用SetWindowPos来移动窗口,我尝试添加所有SWP_NOSENDCHANGING、SWP_DEFERERASE和SWP_NOCOPYBITS也无济于事。这是我的窗口

c++ - 检查 CUDA 存在的程序需要 CUDA?

我编写了一个简单的应用程序来检查计算机上是否有NVIDIACUDA。如果找到支持CUDA的设备,它只会显示true。我将应用程序发送到第二台PC,但应用程序没有运行-出现一个对话框,提示未找到cudart.dll。我想检查CUDA是否存在,它需要CUDA来做:)我正在使用CUDA5.0、VS2012、VC++11、Windows7。我能否以所有CUDA库都在可执行文件中的方式编译应用程序?所以场景是:我的应用已编译并发送到计算机计算机可以:正在运行windows、linux(我的应用程序与系统兼容)是否有GPU有没有nvidiaGPU是否安装了CUDA只有当2.3和2.4为正时(GPU

c - 变量.c :4:1: error: expected declaration specifiers or '...' before '(' token

这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭9年前。我今年13岁,正在学习C语言编程,因此我对C语言编程有非常基本的了解。我正在学习如何“显示变量值”,我使用的是非常基本的代码,但是当我尝试使用GNU(MinGW)编译它时,它告诉我...vars.c:4:1:错误:预期的声明说明符或“...”在“(”标记之前请有人告诉我如何解决这个问题!这是代码:#includeintmain((printf("Integ

c - udp 套接字中接收缓冲区/队列的最大大小

我开发了一个udp服务器/客户端应用程序,其中服务器有一个套接字,它可以连续接收来自40个客户端的数据。现在我想知道如果所有40个客户端同时发送数据会怎样?根据我的理解,数据必须在接收缓冲区中排队,下次我调用recvfrom()时,接收到缓冲区中排队的数据,即我必须调用recvfrom()40次才能接收所有40个客户端的数据,即使所有客户端同时发送数据。另外,我想知道40个Client的数据会全部在receivebuffer中排队还是部分数据也会被丢弃?另外,数据可以在接收缓冲区中排队的最大缓冲区大小是多少?数据在什么限制之后被丢弃? 最佳答案

c - 为什么当我不使用 getch() 时输出只是闪烁?

当我在DevC++中编译并运行以下代码时,#includemain(){printf("Helloworld!");}输出只是闪烁。当我添加getch时,它会保留。#includemain(){printf("Helloworld!");getch();}为什么会这样? 最佳答案 getch()使您的程序在终止之前等待用户输入。Win32控制台应用程序的一个恼人之处是控制台会在程序终止后立即关闭(因此它只是闪烁)。Win9x下的旧DOS程序不是这种情况(控制台默认保持打开状态,除非在DOS快捷方式属性中选中复选框)。如果您在命令提示

c++ - 在 C++ 中运行 cmd 命令

我正在尝试基于C++进行文字冒险。我已经制作了包含每个路径的特定文件的文件夹。假设我从一个房间向南走,我需要进入一个名为“south”的文件夹。我在这里遇到问题,因为我不知道如何在C++中更改目录,如“cd.\south”。请告诉我如何在C++中更改目录。我尝试使用:system("cd.\\south")但它不会改变目录。我也在谷歌上搜索过,但它提供了另一个我不知道如何使用的名为“ShellExecute”的函数的链接。请帮忙(我是一个完全的初学者)。 最佳答案 system函数为命令创建一个新进程。这意味着任何目录更改都将是该新

c++ - 创建进程处理

我使用WindowsAPICreateProcess函数。在它的msdn手册中,我找到了Ifthefunctionsucceeds,besuretocalltheCloseHandlefunctiontoclosethehProcessandhThreadhandleswhenyouarefinishedwiththem.Otherwise,whenthechildprocessexits,thesystemcannotcleanuptheprocessstructuresforthechildprocessbecausetheparentprocessstillhasopenhand

c++ - c++ new 运算符可以在 Windows 上自动使用大页面吗?

假设我使用VisualStudio编写了一个C++程序,它使用new运算符分配内存。我想知道是否有一种方法可以让new自动使用大页面而不是标准的4KB页面(即,我的程序无需显式调用VirtualAlloc)。感谢您的宝贵时间。 最佳答案 您可以覆盖所有new和delete运算符。例如void*operatornew(size_tsize){returnmalloc(size);}voidoperatordelete(void*pointer){free(pointer);}此外,您应该覆盖此运算符的所有变体:http://www.c

c++ - 在 C++ 中将 UnicodeString 转换为 const char* 的最简单方法?

我是C++的新手,在将UnicodeString转换为字符串时遇到问题,所以现在正在寻找从一种类型转换为另一种类型的最简单方法。我想使用需要字符串和UnicodeString的基本Windows函数,如何使代码工作?UnicodeStringExec="notepad";WinExec(Exec.c_str(),0);使用的环境是c++builderxe2 最佳答案 std::string不能存储unicode数据。为此你需要一个std::wstring。我以前从未听说过UnicodeString,但在这里查看API:http://

c++ - 检测 C++ Windows 应用程序中的内存泄漏

我有一个C++Windows应用程序,它有一些内存泄漏问题。是否可以使用NTSD分析转储中的内存泄漏?如果是这样,请指导我该怎么做?我还听说我们可以使用用户模式转储来完成。我不太熟悉在Windows中查找泄漏。在Linux中使用Valgrind非常容易。有没有其他更好的选择来检查这个? 最佳答案 seehere有关视觉检漏仪的详细信息。我在Windows上使用过它。您在应用程序中所做的就是#include您将在调试程序时看到有关在终端中检测到泄漏的报告,如下所示:----------Block1199at0x04BE1058:136