小编Kra*_*Kra的帖子

如何在try-catch块中释放内存?

我希望有一个简单的问题 - 当异常发生时,如何在try块中分配一个空闲内存?请考虑以下代码:

try
 {
  char *heap = new char [50];
        //let exception occur here
  delete[] heap;
 }
 catch (...)
 {
  cout << "Error, leaving function now";
  //delete[] heap; doesn't work of course, heap is unknown to compiler
  return 1;
 }
Run Code Online (Sandbox Code Playgroud)

如何在分配堆之后释放内存并在调用之前发生异常delete[] heap?在这些try .. catch块中是否有规则不在堆上分配内存?

c++ try-catch delete-operator

24
推荐指数
4
解决办法
1万
查看次数

如何初始化类数组?

我有这个类构造函数:

Pairs (int Pos, char *Pre, char *Post, bool Attach = true);
Run Code Online (Sandbox Code Playgroud)

如何初始化Pairs类的数组?我试过了:

Pairs Holder[3] =
{
    {Input.find("as"), "Pre", "Post"},
    {Input.find("as"), "Pre", "Post"},
    {Input.find("as"), "Pre", "Post"}
};
Run Code Online (Sandbox Code Playgroud)

显然它不起作用,我也尝试使用()括号而不是{}但编译器一直保持呻吟.对不起,如果是蹩脚的问题,我google了相当努力,但无法找到答案:/

c++ arrays

6
推荐指数
2
解决办法
2万
查看次数

如何从任务管理器的“应用程序”选项卡中隐藏窗口?

我对 CreateWindowEx 函数有疑问。我有 2 个窗口,一个主窗口和一个弹出窗口。我想要一个弹出窗口隐藏在任何地方。它当前未显示在任务栏中,甚至在 alt+tab 菜单中也不可见。但是它在任务管理器的“应用程序”选项卡上可见。我需要在 CreateWindowEx 中使用哪些标志来隐藏我的弹出窗口?

当前代码:

hHistoryWindow = CreateWindowEx(WS_EX_TOOLWINDOW | WS_EX_NOACTIVATE | WS_EX_LAYERED, szAppName, L"HistoryWindow",  WS_EX_TOPMOST | WS_POPUP, WIDTH, TOP, width, height, NULL, NULL, hInstance, NULL);
Run Code Online (Sandbox Code Playgroud)

我还想问一下,在使用DestroyWindow()函数之前,是否需要从“静态”窗口释放位图资源?我通过这种方式将图像设置为“静态”窗口:

SendMessage (hStatic, STM_SETIMAGE, (WPARAM)IMAGE_BITMAP, (LPARAM)hWhiteStone);
Run Code Online (Sandbox Code Playgroud)

释放 hWhiteStone 是否足够,或者我是否还需要释放 SendMessage() 返回的句柄(- 或者它是否由 DestroyWindow 自动完成)?

感谢您提供任何信息。

克拉

c windows winapi taskmanager

5
推荐指数
1
解决办法
1358
查看次数

固定窗口的边框大小

我需要以某种方式获得(固定)窗口边框大小的宽度(垂直方向).默认情况下,WinXP上的它非常薄,但是搭载Aero的Win7,它的厚度要大得多.

我认为GetSystemMetrics可以做到这一点,但似乎它为XP和Win7系统返回相同的值,我检查了以下参数:

SM_CXBORDER
SM_CXEDGE
SM_CYFIXEDFRAME
SM_CYBORDER
SM_CXFIXEDFRAME
Run Code Online (Sandbox Code Playgroud)

但正如我所写,无论垂直窗口边界实际有多厚,它们都会为两个操作系统返回相同的值.窗口是用标志创建的,WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX如果有任何帮助(它不大).

谢谢你的任何想法.

克拉

winapi

1
推荐指数
1
解决办法
3735
查看次数

标签 统计

c++ ×2

winapi ×2

arrays ×1

c ×1

delete-operator ×1

taskmanager ×1

try-catch ×1

windows ×1