小编Jef*_*rey的帖子

Boost中的wstring字符串转换器

我使用Boost库来实现我的应用程序.我的应用程序的数据模型中的所有字符串字符都是宽字符(wchar_t类型).但是在boost库中,有些类只处理窄char(char类型),即" address boost::asio::ip::address::from_string(const char* str)".所以我需要在调用boost函数时在std :: string和std :: wstring之间进行转换.

  1. 由于字符串转换,是否存在性能问题?
  2. 那里的Boost转换器,它使std :: wstring和std :: string之间的转换具有良好的性能?

UPDATE

关于转换器功能.我发现下面的代码有效.

std::wstring wstr(L"Hello World");
const std::string nstr( wstr.begin(),  wstr.end());
const std::wstring wstr2(nstr.begin(), nstr.end());
Run Code Online (Sandbox Code Playgroud)

string boost converter

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

boost socket读写函数是否安全?

我使用boost.asio来实现网络通信.在主线程中,我创建TCP套接字并连接远程机器.然后启动一个工作线程从套接字读取数据.在主线程中,相同的套接字用于发送数据.这意味着在没有互斥锁的两个线程中使用相同的套接字.代码粘贴在下面.关于套接字的读写功能有什么问题吗?

boost::asio::io_service         m_io_service;
boost::asio::ip::tcp::socket    m_socket(m_io_service);
boost::thread*                  m_pReceiveThread;

void Receive();

void Connect()
{
    boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::address::from_string("127.0.0.1"), 13);
    m_socket.connect(endpoint);

    m_pReceiveThread = new boost::thread(Receive);
}

void Send()
{
    std::wstring strData(L"Message");
    boost::system::error_code error;
    const std::size_t byteSize = boost::asio::write(m_socket, boost::asio::buffer(strData), error);
}


void Receive()
{
    for (;;)
    {
        boost::array<wchar_t, 128> buf = {0};
        boost::system::error_code error;

        const std::size_t byteSize = m_socket.read_some(boost::asio::buffer(buf), error);

        // Dispatch the received data through event notification.
    }
}

int main()
{

    Connect();

    while(true)
    {
        boost::this_thread::sleep( boost::posix_time::seconds(1));
        Send();

    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ boost thread-safety boost-asio

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

如何将JSON字符串映射到C#方法的调用

我想实现一个框架来将JSON字符串映射到C#方法的调用.例如,我有一个C#类计算器定义如下.

// C# class
class Calculator
{
public:
    int add (int x, int y);
    int sub (int x, int y);
}
Run Code Online (Sandbox Code Playgroud)

下面有一个JSON字符串.当框架收到此字符串时,它会创建/ new类Calculator的对象.然后调用它的函数add.并将值12和43作为参数传递给函数.

// JSON string
"{
\"class\":\"Calculator\",
\"method\":\"add\",
\"parameters\": {
    \"x\" : \"12\", \"y\" : \"43\"
    }
}"
Run Code Online (Sandbox Code Playgroud)

有没有第三方库来实现这个?或者我如何自己实施?

c# json

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

哪个Linux发行版更适合Node.js Web服务器

我用Node.js创建一个Web服务器.我正在使用Express框架.数据库是MongoDB.

我想在Linux机器上托管Web服务器.我不知道如何在不同的Linux发行版之间做出决定,比如Debian,Unbuntu或RedHat.

我的问题是:

  1. 不同分布的主要区别是什么?
  2. 我应该考虑哪些因素?
  3. 哪一个更符合我的要求?

linux webserver node.js

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

将 Sketchup (*.skp) 文件转换为 STL 或 OBJ

我正在寻找将 Sketchup (*.skp) 文件转换为 STL 或 OBJ 的解决方案。

是否有将 Sketchup (*.skp) 文件转换为 STL 或 OBJ 的命令行工具?我正在寻找同时支持 windows 和 mac 的工具。

或者

如何在 JavaScript 中将 Sketchup (*.skp) 文件转换为 STL 或 OBJ?

任何线索或评论表示赞赏。

谢谢,杰弗里

stl sketchup

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

如何防止恶意 *.js 脚本在 Node.js 中执行

我正在使用 Node.js 创建 Web 服务。在实现过程中,我使用了许多通过 npm 安装的第三方模块。如果使用的模块中存在恶意 *.js 脚本,则会出现安全问题。例如,恶意代码可能会删除我所有的磁盘文件,或者默默地收集秘密数据。

我对此有几个问题。

  1. 如何检测模块是否存在安全问题?
  2. 我应该如何防止恶意 *.js 脚本在 Node.js 中执行?

如果您能分享构建 Node.js 服务的任何经验,我将非常感激。

谢谢,杰弗里

security module node.js

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

GPU内存在chrome任务管理器中的含义

在chrome任务管理器中,有一个名为的列GPU memory.

  1. 这个记忆代表什么?
  2. 它是物理RAM或GPU中的内存吗?
  3. GPU内存和内存之间有什么关系?

铬任务经理

memory google-chrome

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

终端设备如何在XBee(系列1)NonBeacon(w/Coordinator)网络中相互通信

我设置了一个带有三个XBee Series 1模块的NonBeacon(w/Coordinator)网络.一个配置为协调员.其他两个配置为终端设备.固件版本和配置如下.

Firmare

Modem:  XBEE    Function Set    Version
XB24    XB24    802.15.4        10CD
Run Code Online (Sandbox Code Playgroud)

协调员

Parameter            Value   Comments
CH (Channel)         0x0F    Identical
ID (PAN ID)          0x5241  Identical
DH                   0x0
DL                   0x0
MY (Source Address)  0xFF01  Unique
CE (Coord. Enable)   1  
A2 (Coord. Assoc.)   0x04    allow end devices to associate to it.
Run Code Online (Sandbox Code Playgroud)

终端设备

Parameter            Value   Comments
CH (Channel)         0x0F    Identical
ID (PAN ID)          0x5241  Identical
DH                   0x0
DL                   0x0
MY (Source Address)  0xFF02  Unique
CE (Coord. Enable)   0  
A1 (End Dev Assoc.) …
Run Code Online (Sandbox Code Playgroud)

xbee

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

如何在Xcode中使用Q_OBJECT宏编译头文件?

我在Xcode中创建C++项目,它链接到Qt框架.你好世界计划运作良好.当我添加从QObject派生的类并添加Q_OBJCET宏时,会出现链接错误.

这堂课是

MyObject.h

#ifndef MyObject_h
#define MyObject_h

#include <QtCore/QObject>

class MyOBject : public QObject
{
  Q_OBJECT

public:
    MyOBject();

};


#endif
Run Code Online (Sandbox Code Playgroud)

MyObject.cpp

#include "MyObject.h"

MyOBject::MyOBject()
{
}
Run Code Online (Sandbox Code Playgroud)

我知道我应该先使用moc编译MyObject.h,然后将生成的moc_MyObject.cpp添加到Xcode项目中.

在Microsoft Visual Studio中,我可以配置此头文件以使用moc自定义工具进行编译.并将生成cpp文件添加到VS项目.

但这是Xcode.我的问题是:在Xcode中是否有相同的平均值来编译包含Q_OBJECT宏的头文件?

xcode qt moc qobject

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

为什么/ bin/sh在Mac和Ubuntu上表现不同

我正在写一个sh文件来获取文件的修改时间.我希望sh文件适用于Mac和Ubuntu.

我使用/ bin/sh并将#!/ bin/sh添加到bash文件的第一行.我想/ bin/sh在两个操作系统上的行为应该相同.但事实并非如此.以下是差异的两个例子.

  1. 下面的脚本适用于Mac,但不适用于Ubuntu.

    modTime=$(stat -f "%m" -t "%s" $filepath)

  2. 下面的脚本适用于Ubuntu,但不适用于Mac.

    modTime=$(date +%s -r $filepath)

我的问题是:

  1. 为什么/ bin/sh在Mac和Ubuntu上表现不同?
  2. 如果我想编写跨平台的sh脚本,我应该如何避免与平台相关的代码?

macos bash shell ubuntu sh

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