我正在慢慢进入 WinAPI 编程,有些宏让我有点困惑。其中有一个宏LOWORD(I)
。你能解释一下下面一行发生了什么吗?)
#define LOWORD(l) ((WORD)(((DWORD_PTR)(l)) & 0xffff))
我正在慢慢进入 WinAPI 编程,有些宏让我有点困惑。其中有一个宏LOWORD(I)
。你能解释一下下面一行发生了什么吗?)
#define LOWORD(l) ((WORD)(((DWORD_PTR)(l)) & 0xffff))
我正在编写一个程序 - 一个改变桌面背景图像的小丑。问题是函数 puts 而不是嵌入的图像
LPWSTR str = (LPWSTR)"C:\\Users\Admin\Desktop\sr2.bmp";
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, str, SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
黑色背景。这可能是什么原因以及如何解决这个问题?
我正在编写一个将更改桌面图像的笑话程序:其中一行代码发生错误:
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "sr2.jpg", SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);
在第三个参数中,编译器抱怨无法将 const char* 转换为 PVOID。似乎我在某个地方错过了一些东西。可能是什么问题呢?
我正在实现我的类以使用矩阵,但在其中一种类方法中,在分析代码时,Visual Studio 报告缓冲区溢出。
编码:
typedef unsigned int UINT;
class NumCxx
{
//some implementation
};
UINT NumCxx::ones(UINT columns, UINT rows) // Method ones creates the matrix;
// UINT - unsigned int
{
if (!checkout())
{
this->dim_array_ = new int* [columns_]; // Creates an array
}
this->columns_ = columns;
this->rows_ = rows;
this->length_ = columns_; // length of an array
for (UINT i = 0; i < columns_; ++i)
{
dim_array_[i] = new int[rows_]; // PROBLEM is here
for (UINT j = 0; j < rows_; ++j)
{
dim_array_[i][j] = 1;
}
}
return 0;
}
Visual Studio 突出显示dim_array_[i] = new int[rows_];
该行并显示缓冲区溢出。
该方法UINT NumCxx::checkout()
检查是否已创建矩阵,如果未创建,则字符串this->dim_array_ = new int* [columns_];
创建二维动态数组。
结帐()代码:
UINT NumCxx::checkout()
{
if (length_) // Если длина была задана (по умолчанию в конструкторе = 0)
{
for (UINT i = 0; i < length_; ++i)
{
delete[] dim_array_[i];
}
return 1;
}
return 0;
}
如何消除这个不愉快的时刻,或者只是忽略它(我不想)?
我正在实现我的向量类,但我有一个问题:如何以这种形式将数组传递给构造函数:
ClassName object = {1, 2, 3, 4, 5};
?