小编Som*_*ame的帖子

如何使用VerQueryValue?

我有一个需要从特定的DLL检索版本信息的exe(例如:FileDescription).我的代码已经调用了GetFileVersionInfoSize和GetFileVersionInfo.但即使经过http://msdn.microsoft.com/en-us/library/ms647464(v=vs.85)和其他示例,我也不确定如何应用VerQueryValue .

有人可以解释/阐明如何应用VerQueryValue及其用法吗?谢谢.

winapi

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

C中的pragma对齐是什么?

最近,当我通过代码时,我发现#pragma DATA_ALIGN(var,4*1024).var是一个大约20k长的结构变量.我在互联网上搜索过这个,但找不到任何有用的东西.任何人都可以提供链接或对此有所了解吗?

c operating-system memory-management

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

堆栈和队列如何是列表的“特殊情况”?

为了明天的测试,我需要能够:

解释堆栈和队列如何成为列表的特殊情况。

有谁知道我可以在哪里阅读此内容?谷歌搜索无法帮助我解决这个问题,这是“我们在课堂上讨论过这个问题,不要再问我”类型的问题之一。

queue stack list

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

printf表现得很奇怪

我有一个简单的程序,应该打印一个字符串.但我没有得到预期的输出.谁能告诉我这个程序有什么问题?

这是我的代码:

main()
{
   char arr[] = "Test_string";
   printf("%20s"+1,arr);
   return 0;
}

output: 20s
Run Code Online (Sandbox Code Playgroud)

预期产出是:Test_string

"Test_string"在我们"%20s"作为格式说明符给出的20个地方打印.

c printf

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

C/C++中的平等

在C++中,确定某个值x是否在两个限制之间的常用方法是:

  //This is (A)
double x = 0.0d;
double lower = -1.0d;
double upper = +1.0d;

if(x > lower && x < upper){
  // Do some stuff
}
Run Code Online (Sandbox Code Playgroud)

但今天我偶然发现我能做到这一点:

  // This is (B)
double x = 0.0d;
double lower = -1.0d;
double upper = +1.0d;

if(lower < x < upper){
  // Do some stuff
}
Run Code Online (Sandbox Code Playgroud)

它似乎工作正常,但我从来没有听说过这种做法,"低<x <上".这是否会产生您所期望的可执行代码?IE,是(A)相当于(B)?

我想很多人都不会知道这一点,我怀疑这可能是因为编译器(A)对(B)的解释不同.这对吗?

c c++ equality

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

如何在C中检测ESC键?

我写了一段代码来检测箭头键使用_getch();,我也希望检测esc键,但我实际上不知道我应该使用的数字是什么,所以任何帮助表示赞赏.

#include <conio.h>
#include <stdio.h>
#define KEY_UP 72
#define KEY_DOWN 80
#define KEY_LEFT 75
#define KEY_RIGHT 77

int c = 0;
_getch();
switch ((c = _getch())) {
case KEY_UP:
    printf("Up\n");
    break;
case KEY_DOWN:
    printf("Down\n");
    break;
case KEY_LEFT:
    printf("Left\n");
    break;
case KEY_RIGHT:
    printf("Right\n");
    break;
default:
    printf("Null\n");
    break;
Run Code Online (Sandbox Code Playgroud)

每个箭头键是ascii代码224和定义的两个字符的组合(注意第一个_getch();),但我不知道对于转义键,我尝试搜索但没有找到它们,这些的完整列表将如此很有帮助.

谢谢.

c

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

泄漏和地址有什么区别?

我在我的项目中使用-fsanitize=leak-fsanitize=address。我认为泄漏发现内存泄漏(不删除内存)和地址发现拧内存访问。但是地址也说明了未删除的内存。那么,-fsanitize=leak需要出于什么目的呢?

c++ address-sanitizer

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

为什么在HTML中使用GET方法时会传递提交按钮值?

我在我的网站上使用表格中的"GET"方法.由于某种原因,它将提交按钮的值传递给URL.为什么会这样?我究竟做错了什么?

形成:

<form method="GET" action="searcht1.php">
    <input type="text" name="search"/>
    <input type="submit" name="submit">
</form>
Run Code Online (Sandbox Code Playgroud)

网址:

searcht1.php?search=colin+pacelli&submit=Submit
Run Code Online (Sandbox Code Playgroud)

html get request

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

为什么*这可以作为&类型?

class Cell : public QTableWidgetItem
{
public:
    Cell();

    QTableWidgetItem *clone() const;
...
}
Run Code Online (Sandbox Code Playgroud)

以上是Qt程序中的类定义.以下是其余部分.

QTableWidgetItem *Cell::clone() const
{
    return new Cell(*this);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是关于最后一句,如果我把它改为喜欢:

return new Cell(this);
Run Code Online (Sandbox Code Playgroud)

然后Qt会给出错误信息: 在此输入图像描述

为什么?我明白这this是一个指针,不能成为论点.但*this可能是一种&类型?

c++ qt

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

为什么这个 C 代码将一个 2D 数组中的字符串与下一个一起打印出来?

以下代码用于打印二维数组中的字符串元素。由于所有字符串中的最大长度为 5,因此我将其初始化为最大元素长度 5。

#include <stdio.h>
#include <string.h>

int main()
{
    char arr[4][5] = {"abcde", "efghi", "ijklm", "nop"};
    for(int i = 0; i < 4; i++){
        printf("String: \"%s\" with length: %d\n", arr[i], (int) strlen(arr[i]));
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但结果是

字符串:“abcdeefghiijklmnop”,长度:18
字符串:“efghiijklmnop”,长度:13
字符串:“ijklmnop”,长度:8
字符串:“nop”,长度:3

这不是想要的结果,因为我希望它们单独打印。

现在,我将数组arr可以存储的字符串的最大大小更改为 6。

#include <stdio.h>
#include <string.h>

int main()
{
    char arr[4][6] = {"abcde", "efghi", "ijklm", "nop"};
    for(int i = 0; i < 4; i++){
        printf("String: \"%s\" with length: %d\n", arr[i], (int) strlen(arr[i]));
    }
    return 0; …
Run Code Online (Sandbox Code Playgroud)

c arrays string pointers multidimensional-array

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