小编Ole*_*kov的帖子

如何在QUrl中设置主机路径?

我正在使用 QUrl 构建字符串 url。假设我需要获取“rtsp://camera.lan/stream”网址。

下面的代码给出了“rtsp://camera.lan”url:

QUrl url; 
url.setScheme("rtsp"); 
url.setHost("camera.lan"); 
auto url_str = url.toString().toStdString();  // "rtsp://camera.lan"
Run Code Online (Sandbox Code Playgroud)

这给出了“rtsp:camera.lan”网址:

url.setScheme("rtsp"); 
url.setPath("camera.lan"); 
auto url_str = url.toString().toStdString();  // "rtsp:camera.lan"
Run Code Online (Sandbox Code Playgroud)

但如果我设置主机路径,则它无效:

url.setScheme("rtsp"); 
url.setHost("camera.lan"); 
url.setPath("stream"); 
auto url_str = url.toString().toStdString();  // gives ""
bool url_is_valid = url.isValid();  // false
Run Code Online (Sandbox Code Playgroud)

文档

对于非分层方案,路径将是方案声明之后的所有内容

但是如果我需要指定路径权限怎么办?

c++ url qt

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

来自dlsym的std :: function导致分段错误

我想动态链接共享库并从中分配一个函数std::function.这是代码:

function.cpp:

#include <array>

#ifdef __cplusplus
extern "C" {
#endif

double function(std::array<double, 1> arg)
{
    return arg[0] * 2;
}

#ifdef __cplusplus
}
#endif
Run Code Online (Sandbox Code Playgroud)

main.cpp中:

#include <functional>
#include <iostream>
#include <fstream>
#include <array>
#include <functional>

#ifdef __linux__
#include <dlfcn.h>
#endif

int main()
{
void *handle;
double (*function)(std::array<double, 1>);
char *error;

handle = dlopen("/home/oleg/MyProjects/shared_library_test/libFunction.so", RTLD_LAZY);
if (!handle) 
{
    fprintf(stderr, "%s\n", dlerror());
    exit(EXIT_FAILURE);
}

dlerror();
*(void **) (&function) = dlsym(handle, "function");

if ((error = dlerror()) != NULL)
{
    fprintf(stderr, "%s\n", …
Run Code Online (Sandbox Code Playgroud)

c++ linux dynamic-linking dlsym std-function

0
推荐指数
1
解决办法
429
查看次数

标签 统计

c++ ×2

dlsym ×1

dynamic-linking ×1

linux ×1

qt ×1

std-function ×1

url ×1