小编Phi*_*mer的帖子

boost::asio::read 抛出编译错误“read_some”不是“boost::shared_ptr<boost::asio::ip::tcp::socket>”的成员

我正在尝试建立一个客户端以通过特定协议从服务器获取数据。我知道我的代码不是最好的 - 但目前我仍在试验 Boost ASIO 的基本功能。

我想实现从 TCP-Function 的读取,它会阻塞直到接收到特定数量的字节。

我的问题:当我调用 boost::asio::read 或 boost::asio::write 时,出现以下错误:

错误 C2039:“read_some”:不是 boost::shared_ptr 的成员

我正在使用 VS2013 Professional, Boost 1.55.00(预编译)。

这是我的代码:(您可以通过注释“//HEEERE”找到该行

boost::mutex cout_lock;

int main()
{
  // creating io_service
  boost::shared_ptr<boost::asio::io_service> io_service(new boost::asio::io_service);
  // creating work and assigning it to io_service
  boost::shared_ptr<boost::asio::io_service::work> work(new boost::asio::io_service::work(*io_service));
  // creating strand and assigning it to io_service
  boost::shared_ptr<boost::asio::io_service::strand> strand(new boost::asio::io_service::strand(*io_service));

  // creating socket
  boost::shared_ptr<boost::asio::ip::tcp::socket>   socket(new boost::asio::ip::tcp::socket(*io_service));

  try {
    // creating resolver
    boost::asio::ip::tcp::resolver resolver(*io_service);
    // creating query
    boost::asio::ip::tcp::resolver::query query(IPConfig_str, boost::lexical_cast<std::string>(IPConfig_PortNr));
    // creating iterator
    boost::asio::ip::tcp::resolver::iterator …
Run Code Online (Sandbox Code Playgroud)

boost tcp shared-ptr boost-asio

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

如何在响应式 QVBoxLayout 中获取 QWidget 的当前宽度?

我目前正在尝试使垂直滚动条的步长适应可滚动和响应式 QVBoxLayout 内对象的高度。这样一个滚动步骤正好向下滚动一个小部件。QVBoxLayout 内的所有对象都具有相同的几何形状。

因此,我需要 QVBoxLayout 内对象之一的当前(实时)高度。我已经尝试了以下方法:

对象初始化为高度 300(不固定)。然后通过调整包含 QVBoxLayout 的窗口大小来动态调整高度。

QWidget* pWidget = PointerToMyWidgetInsideQVBoxLayout;
std::cout << "height:" << pWidget->height() << std::endl; /// @todo PHIL: height gives only initial value, not current height
std::cout << "geometry-height:" << pWidget->geometry().height() << std::endl;
std::cout << "frameSize-height:" << pWidget->frameSize().height() << std::endl;
std::cout << "frameGeometry-height:" << pWidget->frameGeometry().height() << std::endl;
std::cout << "normalGeometryheight:" << pWidget->normalGeometry().height() << std::endl;
std::cout << "minimumHeight-height:" << pWidget->minimumHeight() << std::endl;
std::cout << "maximumHeight-height:" << pWidget->maximumHeight() << std::endl;
std::cout << "sizeHint-height:" << pWidget->sizeHint().height() …
Run Code Online (Sandbox Code Playgroud)

c++ size qt qwidget

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

标签 统计

boost ×1

boost-asio ×1

c++ ×1

qt ×1

qwidget ×1

shared-ptr ×1

size ×1

tcp ×1