小编Tho*_*ler的帖子

&& 是限定符吗?

我知道这一点const,并且volatile在 C++ 规范中被称为“cv 限定符”,例如[basic.type.qualifier]

现在我有这段代码(godbolt)无法编译。

#include <string>
class Dummy
{
    std::string member{"test"};

    public:
    std::string const && foo() &&
    { return std::move(member); }
};

int main()
{
    Dummy d;
    std::string s = d.foo();
}
Run Code Online (Sandbox Code Playgroud)

它无法编译,因为w它是一个 LValue 并且foo()仅针对 RValue 存在。这很好,也是意料之中的。

但让我们看一下错误消息:

<source>: In function 'int main()':
<source>:14:26: error: passing 'Dummy' as 'this' argument discards qualifiers [-fpermissive]
   14 |     std::string s = d.foo();
      |                     ~~~~~^~
<source>:7:26: note:   in call to 'const …
Run Code Online (Sandbox Code Playgroud)

c++

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

窗口调整大小时MFC程序崩溃,错误"找不到所需的资源".

我正在开发一个SDI MFC应用程序,其中有一些自定义按钮以自定义方式绘制或者图像加载在它们之上.当正在运行的应用程序连续重新调整大小约5到10分钟时,它会因错误"未找到所需资源"而崩溃.

我已经彻底检查了代码,所有的GetDC()呼叫都跟着ReleaseDC()电话.此外,每当我DC.SelectObject(&newBrush)打电话然后恢复旧笔时,我总是保存旧的GDI对象(例如,oldBrush)DC.SelectObject(&oldBrush).

什么其他可能导致此错误的任何提示?

编辑:我使用程序Deleaker来查找程序中的GDI泄漏并删除导致泄漏的那些GDI对象.

编辑:这是AfxThrowResourceException的调用堆栈:

mfc110ud.dll!AfxThrowResourceException() Line 1353  C++
mfc110ud.dll!CWindowDC::CWindowDC(CWnd * pWnd) Line 1022    C++
mfc110ud.dll!CMFCToolBarImages::PrepareDrawImage(tagAFXDrawState & ds, CSize sizeImageDest, int bFadeInactive) Line 1219    C++
mfc110ud.dll!CMFCToolBarImages::DrawEx(CDC * pDC, CRect rect, int iImageIndex, CMFCToolBarImages::ImageAlignHorz horzAlign, CMFCToolBarImages::ImageAlignVert vertAlign, CRect rectSrc, unsigned char alphaSrc) Line 1729   C++
mfc110ud.dll!CMFCControlRenderer::FillInterior(CDC * pDC, CRect rect, CMFCToolBarImages::ImageAlignHorz horz, CMFCToolBarImages::ImageAlignVert vert, unsigned int index, unsigned char alphaSrc) Line 470  C++
mfc110ud.dll!CMFCControlRenderer::FillInterior(CDC * pDC, CRect rect, …
Run Code Online (Sandbox Code Playgroud)

c++ mfc gdi

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

.loadby不起作用,但.load效果很好

当我尝试使用windbg时,

.load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SOS.dll 
Run Code Online (Sandbox Code Playgroud)

完美地加载SOS扩展.

但是当我尝试使用建议的模式时

.loadby SOS
Run Code Online (Sandbox Code Playgroud)

要么

.loadby sos.dll
Run Code Online (Sandbox Code Playgroud)

我只能收到一条错误消息"扩展字符串中的语法错误".

我试图用Google搜索此错误消息,但没有找到任何有用的信息.

有什么建议 ?

windbg sos

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

如何比较xxxx格式的版本数字字符串

如何比较xxxx格式的版本字符串

例如,相比3.0.17503.0.1749

含义

if (3.0.1750 > 3.0.1749)
{
   // do this
}
Run Code Online (Sandbox Code Playgroud)

c# string compare

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

在 Python 中调试凯撒密码

当我输入“Hello World!”时 它被加密为“KNUUXWZXAUMX”如果我将其放入解密代码中,解密将返回为“HKRRUTWUXRJU”。

由于这是一个高中项目,因此需要一些必需的函数等。我必须在代码中使用函数、列表和循环。我稍后还会提出其他要求,例如要加密的大写字母、数字和标点符号。

我的代码是:

text = (input('Add some text: '))
def toList(text):
    text.split()
    return text

def encrypt(text):
    shift = 3
    text1 = text
    encryption = ""
    for x in text1:
        xCode = ord(x)
        xGuide = xCode - ord("A")
        newGuide = (xGuide + shift) % 26
        newCode = newGuide + ord("A")
        newLetters = chr(newCode)
        encryption = encryption + newLetters
    print("encrypted text: ", encryption)
    print("text:", text1)

encrypt(text) 
cipherText = (input('Add some encrypted text: '))

def decrypt(cipherText):
    shift = 3
    cipherText1 = …
Run Code Online (Sandbox Code Playgroud)

python encryption

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

生成大量哈希值

我想要生成大量 (10 TB) 看似随机但可预测的数字。生成速度应该超过快速SSD,所以我想要3000 MB/s到4000 MB/s。

文件写入后,将再次读取数字并重新生成,以便进行比较。整个程序应该检查磁盘。

目前我正在考虑哈希。为了可预测性,要散列的数据只是一个 8 字节数字 ( ulong)。所以在二进制文件中它看起来像这样

<32 bytes of SHA256(0)> <32 bytes of SHA256(1)> ...
Run Code Online (Sandbox Code Playgroud)

我不认为我可以使用带种子的随机数生成器,因为我无法告诉随机数生成器生成第n个数字。但我可以告诉 SHA256 算法计算 SHA256(n)。

我使用 SHA256 算法对 128 MB 数据进行了测试,如下所示:

Parallel.For(0, 128 * 1024 * 1024 / 32,     // 128 MB / length of the hash
    a => {
        var sha = SHA256.Create();
        sha.Initialize();
        var ba = new byte[8];
        ba[0] = (byte)((long)a >> 0 & 0xFF);
        ba[1] = (byte)((long)a >> 8 & 0xFF);
        ba[2] = (byte)((long)a …
Run Code Online (Sandbox Code Playgroud)

.net c# optimization hash performance

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

类中的静态整数在foreach循环中无法访问?

这是我正在使用的代码:

    class Program
    {
        static StandardRoom room55 = new StandardRoom(55);
        static StandardRoom room45 = new StandardRoom(45);
        static List<StandardRoom> roomMap = new List<StandardRoom>() { room45, room55 };

    static void Main(string[] args)
    {
        foreach(StandardRoom room in roomMap)
        {
            Console.WriteLine(room.roomId);   
        }
    }

class StandardRoom
{
    public static int roomId;

    public StandardRoom(int roomNum)
    {
        roomId = roomNum;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

使用实例引用无法访问成员"room.roomId"; 用类型名称来限定它.

我真的不确定如何解决这个问题.

c# foreach static class

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

标签 统计

c# ×3

c++ ×2

.net ×1

class ×1

compare ×1

encryption ×1

foreach ×1

gdi ×1

hash ×1

mfc ×1

optimization ×1

performance ×1

python ×1

sos ×1

static ×1

string ×1

windbg ×1