我已经阅读了很多关于内存排序的文章,并且所有这些文章都只说CPU重新加载和存储.
CPU(我对x86 CPU特别感兴趣)是否仅重新排序加载和存储,并且不重新排序它具有的其余指令?
该INITCOMMONCONTROLSEX
结构文档提及以下内容:
ICC_STANDARD_CLASSES
加载一个内在的User32控件类.用户控件包括按钮,编辑,静态,列表框,组合框和滚动条.
我不明白这意味着什么,"按钮,编辑,静态,列表框,组合框"被认为是常见的控件?!
我认为对此的解释如下:
这些控件有两个版本,一个版本位于user32.dll中,另一个版本位于comctl32.dll中,现在当我使用Visual Styles时(通过向我的程序添加一个清单文件),使用的版本将是的COMCTL32.DLL,如果我使用视觉样式那么我应该叫INITCOMMONCONTROLSEX()用ICC_STANDARD_CLASSES
.
它是否正确?
我正在使用以下代码来检查另一个应用程序是否正在使用文件:
HANDLE fh = CreateFile("D:\\1.txt", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
if (fh == INVALID_HANDLE_VALUE)
{
MessageBox(NULL, "The file is in use", "Error", 0);
}
Run Code Online (Sandbox Code Playgroud)
如果另一个应用程序正在使用该文件,则会显示消息框。但是,如果文件不存在,也会显示消息框!
那么我应该怎么做才能解决这个问题,我是否还应该检查文件是否存在(使用另一个函数),或者是否可以将参数CreateFile()
更改为仅INVALID_HANDLE_VALUE
在文件正在使用并且确实存在时才返回?
AC 程序在启动时继承其区域设置环境变量。这是自动发生的。但是,这些变量不会自动控制库函数使用的区域设置,因为 ANSI C 规定所有程序默认都以标准
"C"
区域设置启动。
我读过,C 程序在启动时必须具有 C 语言环境,因此 C 程序在启动时必须执行如下操作:
setlocale(LC_ALL, "C");
Run Code Online (Sandbox Code Playgroud)
但是这行代码最终是如何出现在C程序中的呢?编译器会帮我添加它吗?
我使用以下代码在WinAPI中创建了一个复选框:
HWND checkbox = CreateWindowEx(NULL, "BUTTON", "Click Me!", WS_CHILD | WS_VISIBLE | BS_CHECKBOX, 10, 10, 60, 20, hWnd, NULL, hInstance, NULL);
Run Code Online (Sandbox Code Playgroud)
我希望复选框在点击时自动更改其状态,但事实并非如此!
我没有在MSDN上找到任何示例,因此如何在单击时使复选框更改其状态?我应该处理WM_COMMAND
消息并查看它处于什么状态,然后将其状态更改为相反的状态?