小编Fro*_*art的帖子

如何在WinForms中处理控件和表单的拉伸

假设我在Designer中有以下表单:

在此输入图像描述

我想让用户能够根据需要拉伸这个表单,并且无论用户如何更改此表单的大小,所有控件都应该如图所示,因此他们应该占用相同的空间并坚持使用相同的空间控制和边界.

我怎么能在WinForms中做到这一点?我知道有像Docks等这样的东西,但我没有找到在这种情况下使用它们的正确方法.

c# user-interface winforms

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

卷括号初始化没有任何值

写这样的东西可以

typedef unsigned long DWORD;
DWORD nBytesRead = {};
Run Code Online (Sandbox Code Playgroud)

此变量在此表达式后是否包含0?

c++ c++11 list-initialization

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

我应该为每个在不同线程之间共享其内存的对象指定volatile关键字

我刚刚阅读过不要使用volatile作为 CERT站点上的同步原语文章,并注意到编译器理论上可以优化以下代码,方法是将flag变量存储在寄存器中,而不是修改不同线程之间共享的实际内存:

bool flag = false;//Not declaring as {{volatile}} is wrong. But even by declaring {{volatile}} this code is still erroneous
void test() {
  while (!flag) {
    Sleep(1000); // sleeps for 1000 milliseconds
  }
}
void Wakeup() {
  flag = true;
}
void debit(int amount){
   test();
   account_balance -= amount;//We think it is safe to go inside the critical section
}
Run Code Online (Sandbox Code Playgroud)

我对吗?

我是否需要为volatile程序中的每个对象使用关键字来共享不同线程之间的内存?不是因为它为我做了某种同步(我需要使用互斥或​​任何其他同步原语来完成这样的任务)但仅仅因为编译器可能优化我的代码并将所有共享变量存储在寄存器中其他线程永远不会获得更新值?

c++ multithreading volatile

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

我可以通过jQuery调用创建非selfclosing标签

我可以通过jQuery中的以下调用创建非自闭合标记吗?

  let autorefreshLabel = $('<label/>', {
    text: 'Autorefresh after ' + autorefreshTimer + ' seconds...'
  });
Run Code Online (Sandbox Code Playgroud)

或者是否可以将此功能用于input仅自动关闭标签?

它适用于Chrome,但我不知道它是否有保证.

javascript jquery

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

vimscript 中函数被多次调用

我想当用户qq在可视模式下按下时调用一个函数,所以我编写了以下代码:

function! FindSelectionMeaning()
  echo "FindSelectionMeaning"
endfunction

vnoremap <silent> qq :call FindSelectionMeaning()<CR>
Run Code Online (Sandbox Code Playgroud)

该函数已被调用,但我有以下问题:

  • 为什么FindSelectionMeaning每个选定的线路都会被调用一次?我认为它应该只被调用一次
  • 有没有办法通过vnoremap(在本例中s:FindSelectionMeaning而不是FindSelectionMeaning)调用脚本相关的函数?

vim vim-plugin

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

如何通过模拟库模拟套接字对象

如何通过模拟库(在Python 3的情况下)从Python的标准库中模拟TCPSocket包装器?socketunittest.mock

这是我的包装:

import socket

import utils


class TCPSocket:
    def __init__(self):
        self.buf = ''

    def __enter__(self):
        pass

    def __exit__(self, exc_type, exc_val, exc_tb):
        self.close()

    def connect(self, host, port):
        self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.sock.connect((host, port))

    def close(self):
        self.sock.close()

    def send(self, data):
        self.sock.send(data)

    def sendall(self, data):
        self.sock.sendall(data)

    # For best match with hardware and network realities,
    # the value of limit should be a relatively small power of 2, for example, 4096
    def recv_some(self, limit=4096):
        return self.sock.recv(limit) …
Run Code Online (Sandbox Code Playgroud)

python unit-testing mocking

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

函数顺序调用

是否保证在以下代码中make_string调用GetLastError函数之前构造对象:

class make_string
{
public:
  template <typename T>
  make_string& operator<<(const T& arg)
  {
    _stream << arg;
    return *this;
  }

  operator std::string() const
  {
    return _stream.str();
  }

protected:
  std::ostringstream _stream;
};

// Usage
foo(make_string() << GetLastError());
Run Code Online (Sandbox Code Playgroud)

c++

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

是否允许在C ++ 11中修改operator []返回的内部std :: string缓冲区

标准中是否有违反以下规则的内部std::string缓冲区修改规则operator[]

void foo(char* buf)
{
  buf[1] = 's';
}

std::string str = "str";
modify_buffer(&str[0]);
Run Code Online (Sandbox Code Playgroud)

我在C ++ 11草案中找到关于datac_str函数的以下报价:

要求:程序不得更改存储在字符数组中的任何值。

但是我什么都没看到operator[]

c++ c++11

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

用g ++进行递归lock()调用

为什么以下代码导致g ++ 5.4.0中出现死锁?

#include <mutex>

int main()
{
    std::mutex m;
    m.lock();
    m.lock();
}
Run Code Online (Sandbox Code Playgroud)

据我所知,根据标准,此代码应导致异常:

30.4.1.2互斥体类型[thread.mutex.requirements.mutex]

6表达式m.lock()应格式正确,并具有以下语义:

[...]

12抛出:需要异常时的system_error(30.2.2).

13错误条件:

(13.1) - operation_not_permitted - 如果线程没有执行操作的权限.

(13.2) - resource_deadlock_would_occur - 如果实现检测到会发生死锁.

(13.3) - device_or_resource_busy - 如果互斥锁已被锁定且无法阻塞.

那怎么了?这是库中的错误吗?

c++ multithreading gcc c++11 c++14

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

std:map如何检查两个对象是否相等?

为什么打印下面的代码1,即使我在地图中插入了两个元素?

#include <iostream>
#include <map>
#include <string>
#include <utility>

struct Foo
{
  Foo(int bar, const std::string& baz)
    : bar(bar)
    , baz(baz)
  {}

  int bar;
  std::string baz;

  bool operator<(const Foo& rhs) const
  {
    if (bar < rhs.bar && baz < rhs.baz)
    {
      return true;
    }
    else
    {
      return false;
    }
  }
};

int main()
{
    Foo first(0, "test");
    Foo second(1, "test");
    std::map<Foo, std::string> m;
    m.insert(std::make_pair(first, "test"));
    m.insert(std::make_pair(second, "test1"));
    std::cout << m.size() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

第二个电话insert()说我们已经在地图中有该项目.为什么?

由于输入错误,我之前的问题 …

c++ stdmap

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