小编Jam*_*mes的帖子

加载和存储是否只有重新排序的指令?

我已经阅读了很多关于内存排序的文章,并且所有这些文章都只说CPU重新加载和存储.

CPU(我对x86 CPU特别感兴趣)是否仅重新排序加载和存储,并且不重新排序它具有的其余指令?

x86 cpu-architecture memory-barriers

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

"BUTTON"是一个共同控制吗?

INITCOMMONCONTROLSEX结构文档提及以下内容:

ICC_STANDARD_CLASSES

加载一个内在的User32控件类.用户控件包括按钮,编辑,静态,列表框,组合框和滚动条.

我不明白这意味着什么,"按钮,编辑,静态,列表框,组合框"被认为是常见的控件?!


我认为对此的解释如下:

这些控件有两个版本,一个版本位于user32.dll中,另一个版本位于comctl32.dll中,现在当我使用Visual Styles时(通过向我的程序添加一个清单文件),使用的版本将是的COMCTL32.DLL,如果我使用视觉样式那么我应该叫INITCOMMONCONTROLSEX()ICC_STANDARD_CLASSES.

它是否正确?

c winapi

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

如何检查文件是否正在被另一个应用程序使用?

我正在使用以下代码来检查另一个应用程序是否正在使用文件:

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在文件正在使用并且确实存在时才返回?

c winapi

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

如何将 C 程序的语言环境设置为“C”语言环境?

AC 程序在启动时继承其区域设置环境变量。这是自动发生的。但是,这些变量不会自动控制库函数使用的区域设置,因为 ANSI C 规定所有程序默认都以标准"C"区域设置启动。

读过,C 程序在启动时必须具有 C 语言环境,因此 C 程序在启动时必须执行如下操作:

setlocale(LC_ALL, "C");
Run Code Online (Sandbox Code Playgroud)

但是这行代码最终是如何出现在C程序中的呢?编译器会帮我添加它吗?

c linux

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

单击时如何使复选框更改其状态?

我使用以下代码在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消息并查看它处于什么状态,然后将其状态更改为相反的状态?

c++ winapi

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

标签 统计

c ×3

winapi ×3

c++ ×1

cpu-architecture ×1

linux ×1

memory-barriers ×1

x86 ×1