我正在尝试建立一个客户端以通过特定协议从服务器获取数据。我知道我的代码不是最好的 - 但目前我仍在试验 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) 我目前正在尝试使垂直滚动条的步长适应可滚动和响应式 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)