小编use*_*889的帖子

c ++ gcc字符串内联

我想强制字符串在运行时通过汇编指令动态分配到局部变量,字符串不占用数据部分中的内存(例如只读数据部分).

以下似乎完美地运作:

char foo[] = "bar";
Run Code Online (Sandbox Code Playgroud)

汇编代码变为:

movl    $7496034, 40(%esp)
Run Code Online (Sandbox Code Playgroud)

因此,在运行时通过指令foo初始化."bar"movl

如何强制它在所有字符串操作中发生?

例如,如果我将字符串文字传递给函数:

testfunc("bar");
Run Code Online (Sandbox Code Playgroud)

"bar"在这种情况下,字符串将在一个部分中分配.

c++ gcc g++ inline

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

强制在堆栈中分配 char[](字符串)而不是全局分配

我试图强制编译器在堆栈中分配内联字符串:此代码在 .rdata 部分分配字符串:

foo("test");
Run Code Online (Sandbox Code Playgroud)

当此代码在堆栈中分配字符串时:

char szt1[] = "test1";
foo(szt1);
Run Code Online (Sandbox Code Playgroud)

这正是我想要强迫的。

如何强制编译始终在堆栈中分配数组?我正在使用海湾合作委员会。

谢谢

c++ string stack gcc

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

MySQL异步?

我基本上面临阻塞问题.我的服务器编码基于C++ Boost.ASIO,使用8个线程,因为服务器有8个逻辑核心.

我的问题是一个线程可能面临一个MySQL查询阻塞0.2~1.5秒我真的不知道如何解决,因为MySQL C++ Connector不支持异步查询,我不知道如何设计服务器"正确"使用多个线程进行查询.

这就是我要求在这种情况下做什么的意见.为异步'查询sql创建100个线程?我可以就这个问题得到专家的意见吗?

c++ mysql boost asynchronous boost-asio

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

加速字节模式扫描 C++

我编写了一个程序来扫描在我的进程中注入的错误代码,如果可能的话,我想加快它的速度。我将代码更改为一次扫描 4 个字节而不是 1 个字节,并使用掩码 AND 表示危险字节,但它仍然很慢。AntiCheats,尤其是 Anti Virus 具有超快的算法。有人可以指出我快速扫描的正确方向吗?

AddSignatureToDB("75??83FB5375??81FE890000000F84????????E9????????83FB4F75", ERROR_SIGID_1);

void AddSignatureToDB(char* szSig, DWORD dwSigID)
{
    char szHex[]        = "0x00";
    int iSigLen = lstrlenA(szSig) / 2;
    int iPadding = iSigLen % 4;

    BYTE* mSigData = new BYTE[iSigLen+iPadding];
    BYTE* mSigMask = new BYTE[iSigLen+iPadding];

    for (int i = 0; i < iSigLen; i++)
    {
        mSigData[i] = 0x00;
        mSigMask[i] = 0x00;

        if (szSig[i * 2] != '?')
        {
            szHex[3] = szSig[i * 2];
            mSigData[i] |= (strtoul(szHex, NULL, 0) << 4 & …
Run Code Online (Sandbox Code Playgroud)

c++ memory design-patterns visual-c++

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