小编Ben*_*min的帖子

基地址随机化的目的

从VS2008开始(是不是?),MSVC链接器选项具有基址随机化.

这个功能的主要目的是什么?

我唯一感到高兴的是,我不再需要手动重新设置我的Dlls了.

这就是全部?这是他们的目的吗?
还有其他好处吗?

dll rebase visual-studio

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

你知道%#x吗,C语言格式字符串

KdPrint((
         "Unknown IoControlCode %#x\n",
                io_stack->Parameters.DeviceIoControl.IoControlCode
        ));
Run Code Online (Sandbox Code Playgroud)

有点奇怪。尖锐的意思是什么?

c format-string

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

我们什么时候应该使用分散/聚集(向量)IO?

Windows文件系统支持分散/聚集IO.(当然,其他平台都有)
但我不知道何时使用IO机制.

你能解释一下这个案子吗?

我们可以从使用I/O机制中获得什么好处?(只是一点点IO请求?)

windows filesystems file-io ntfs

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

微软的ASLR很奇怪

我观看了一个ASLRed dll图像基于32位进程的地址.
这不是完全随机化.它只是随机化了1/2概率.

例如,一旦我加载一个DLL,然后图像加载到0x12345678.
然后我再次加载图像,图像加载到0x23456789.(基地址已更改!)
但我再次加载图像
0x12345678
0x23456789
0x12345678
0x23456789

...

为什么他们这样实施?
它是否适用于崩溃报告的频率?(用于获取重新部署的dll的相同崩溃地址)

windows dll portable-executable aslr

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

CTRL + C和CTRL + Break是不同的?

我认为他们肯定是一样的.
但我刚刚在SetConsoleCtrlhandler函数中找到了一些值CTRL_C_EVENT和CTRL_BREAK_EVENT .

有区别吗?

windows console signals exception

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

#pragma alloc_text(PAGE,函数名)

#pramga alloc_text(PAGE, foo)

void foo(){ return; }
Run Code Online (Sandbox Code Playgroud)

此代码通常在设备驱动程序中使用。
FOO功能将被交换时系统的需求。

问题。

  • 它可以在用户空间代码中工作吗?功能也会被分页吗?
  • 如果没有编译指示,我的意思是默认情况下,是否为所有内核级函数分配了非分页内存?
  • PE文件加载器是否决定在何处分配功能?

windows winapi pragma virtual-memory

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

如何为关联容器应用std :: accumulate算法?

对于像std :: map这样的地图,我如何积累它的值的总和?
实际上,我用functor和std :: for_each算法制作了它.但我也想用std :: accumulate算法做这个.
我不知道如何将它应用于std :: map.
这甚至可能吗?

struct Accumurator
    : std::unary_function<std::pair<int, int>, void>
{
    Accumurator()
        : totalValue_(0)
    {
    } 

    void operator()(const std::pair<int, int>& p)
    {
        totalValue_ += p.second;
    }

    int result() const
    {
        return totalValue_;
    }

    int totalValue_; 
};

int _tmain(int argc, _TCHAR* argv[])
{
    std::map<int, int> m;
    m.insert(make_pair(1, 10));
    m.insert(make_pair(2, 10));
    m.insert(make_pair(3, 10));
    m.insert(make_pair(4, 10));
    m.insert(make_pair(5, 10));
    m.insert(make_pair(6, 10));

    int totalSum = std::for_each(m.begin(), m.end(), Accumurator()).result();

    // How can I apply accumulate algorithm for associative …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm stl map visual-studio-2008

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

如何自动将类和函数的名称添加到我的日志中

我正在使用 android.util.Log

class Foo
{
  private void boo()
  {
    // This is the basic log of android.
    Log.i("tag", "Start");
  }
}
Run Code Online (Sandbox Code Playgroud)

我想要打印日志[Foo::boo] Start.
我可以在Java中获取类和函数名吗?然后我如何包装代码?

java logging android

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

L'A'和'A'完全一样吗?

当我们编写一个支持unicode和multibytes的程序时,
我们经常使用_T("some string")宏来表示字符串.

但是,角色是否还需要包装这个宏?

L'A'和'A'完全一样吗?
我们不需要为一个角色包裹_T('A')吗?

c++ unicode char

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

如何将这个javascript代码重写为C++ 11?

这是我在Javascript权威指南中看到的javascript闭包代码.我想把它写成C++ 11

var uniqueID1 = (function()
{
    var id = 0;
    return function() { return id++; };
})();    
Run Code Online (Sandbox Code Playgroud)

这是我写的cpp代码.但它没有被编译.C++ 11可以表示相同的表达式吗?

auto c = []() -> int (*)() { int x = 0; return [&x]() -> int { return x++; }};
Run Code Online (Sandbox Code Playgroud)

我正在使用VS2010

编辑: 这是我制作的完整javascript示例代码.您可以轻松测试代码在Web浏览器中的工作方式.

<head>
<script language="javascript">
var uniqueID1 = (function()
{
    var id = 0;
    return function() { return id++; };
})();

var uniqueID2 = (function()
{
      var id = 0;
      return function() { return id++; };
})();
</script>
</head> …
Run Code Online (Sandbox Code Playgroud)

javascript c++ lambda closures c++11

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