小编Pro*_*oxy的帖子

GetModuleHandle(NULL)vs hInstance

使用Windows API进行编程时,我总是立即HINSTANCEWinMain全局变量创建.如果我想制作一个OK按钮,我会这样做(给定全局HINSTANCE g_hInstance):

return CreateWindow("BUTTON", "OK", WS_TABSTOP|WS_VISIBLE|WS_CHILD|BS_DEFPUSHBUTTON, 10, 10, 100, 30, exampleParentWindow, EXAMPLECHILDID, g_hInstance, NULL);
Run Code Online (Sandbox Code Playgroud)

但最近我一直看到实例句柄确定,而不必作为参数传递或堵塞全局命名空间,使用GetModuleHandle(NULL)*调用.所以,上面的例子看起来像这样:

return CreateWindow("BUTTON", "OK", WS_TABSTOP|WS_VISIBLE|WS_CHILD|BS_DEFPUSHBUTTON, 10, 10, 100, 30, exampleParentWindow, EXAMPLECHILDID, GetModuleHandle(NULL), NULL);
Run Code Online (Sandbox Code Playgroud)

*如果您的编译器支持它,您可以编写GetModuleHandle(nullptr)并且语句将具有相同的结果.

调用GetModuleHandle(NULL)显式指定实例句柄的优点(如果有的话)是什么?

精细打印:我知道这有一个答案,但它并没有在StackOverflow上作为自己的问题.

c++ winapi visual-c++

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

对于标准化的回溯和其他调试工具,C++ 14或更高版本是否有任何计划?

是否有任何计划将标准化的回溯和其他调试实用程序添加到C++ 14(或更高版本),还是继续成为OS或编译器添加的功能?

c++ debugging standards

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

为什么我在OpenGL的透视投影中将Z除以W?

我想这是一个数学问题而不是OpenGL问题,但我离题了.无论如何,如果透视分割的整个目的是获得可用的x和y坐标,为什么还要将z除以w呢?另外我如何在第一时间获得w?

c++ opengl math matrix

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

DirectX 11中的视频播放

非常自我解释.微软有DirectShow用于DirectX 9,但在DX11上使用DirectShow是一个超越语言的COM噩梦.是否有我没有听说过的视频渲染标准,或者为此目的可能有免费的第三方库?

编辑:感谢Mgetz,我知道微软尝试解决方案Media Foundation.但是,它仅限于Windows 8+,我更愿意避免使用它.

c++ directx video directx-11

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

在C++中不再需要清理代码吗?

我正在阅读一篇由于RAII之类的文章,你不再需要清理你的代码了.

促成这项研究的是我目前正在编写需要清理的东西才能退出该功能.

例如,我创建了一个文件,并映射了一个文件的视图.

通常,我只是使用gotodo {break;} while(false);退出.但是,C++ 11不再需要它吗?

不过了

if( fail ) {
        UnmapViewOfFile(lpMapView);
        CloseHandle(hFileMap);
        CloseHandle(hFile);
}
Run Code Online (Sandbox Code Playgroud)

每几行代码?

一旦函数退出,编译器是否会自动将其包装起来?它似乎很难相信它实际上清理了文章所说的功能调用.(我可能会以某种方式误解它.)更可能的是,它只是通过从C++库调用它们的解构函数来清理创建的类库.

编辑:文章 - 来自维基百科:

这不一定表明它清理这些函数调用,但它确实意味着它为C++库函数的对象(如FILE *,fopen等对象)

它也适用于WinAPI吗?

c++ c++11

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

标签 统计

c++ ×5

c++11 ×1

debugging ×1

directx ×1

directx-11 ×1

math ×1

matrix ×1

opengl ×1

standards ×1

video ×1

visual-c++ ×1

winapi ×1