问题列表 - 第38243页

std :: move之后的僵尸对象

在使用C++ 0x移动语义移动对象后,我对它的状态感到困惑.我的理解是,一旦一个对象被移动,它仍然是一个有效的对象,但它的内部状态已被改变,以便在调用它的析构函数时,不会释放任何资源.

但是,如果我的理解是正确的,一个移动的对象的析构函数应该仍然被调用.

但是,当我执行一个简单的测试时,这不会发生:

struct Foo
{
    Foo()  
    {
        s = new char[100]; 
        cout << "Constructor called!" << endl;  
    }

    Foo(Foo&& f) 
    {
        s = f.s;
        f.s = 0;
    }

    ~Foo() 
    { 
        cout << "Destructor called!" << endl;   
        delete[] s; // okay if s is NULL
    }

    void dosomething() { cout << "Doing something..." << endl; }

    char* s;
};

void work(Foo&& f2)
{
    f2.dosomething();
}

int main()
{
    Foo f1;
    work(std::move(f1));
}
Run Code Online (Sandbox Code Playgroud)

这个输出:

Constructor called! …
Run Code Online (Sandbox Code Playgroud)

c++ move-semantics c++11

10
推荐指数
1
解决办法
2732
查看次数

从rtp数据包中解析MPEG4帧

我试图从来自轴摄像机的rtp流解析不同的mpeg4帧,并使用avcodec_decode_video函数将数据包提供给ffmpeg库.这里是我正在做的步骤1. rtsp流初始化2. rtp流开始流入3.第一个数据包我开始000001b0 ...配置数据跟随,然后该帧开始于000001b6 ..第二个rtp有效载荷会有所不同,直到我得到一个rtp数据包,其中标记位被设置.之后我再次收到以000001b6开头的数据包并继续使用5-10 rtp数据包..这种模式重复

我正在做的是,如果我检测到000001b0/b6 - 我会累积所有后来的数据包,并在正确初始化解码器上下文之后将较大的缓冲区提供给libavcodec的avcodec_decode_video函数.

但是我在这里得到了一张糟糕的照片,最顶部的部分,一个水平条纹 - 水晶般清晰的图片,剩下的就是蹩脚的.我不确定为什么它会像这样.请帮我

我在rtp数据包中获得的数据是动态-96.

需要注意的是:当我传递iframes和p帧时,这些帧全神贯注于其他制造商的propreitary协议中,ffmpeg能够解析并提供非常好的pcitures.

任何帮助表示赞赏

ffmpeg rtp mpeg-4

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

在单个DNS查询中请求A和AAAA记录

我正在研究C中的DNS查询实现,并且有兴趣在单个查询数据包中请求A和AAAA(IPv4和IPv6)记录,但是当我将两个查询放在一起时,我没有从名称服务器获得任何响应像这样的一个数据包.我已经尝试将查询发送到几个不同的名称服务器(本地和8.8.8.8)没有运气.这是不起作用的,还是我的查询包可能格式错误?

我将AAAA查询附加到现有A请求数据包的基本算法是增加数据包头中的QDCOUNT字段,然后将TYPE设置为AAAA和NAME的RR查询作为指向现有A查询中主机名的指针追加(字节0xC0 0x0C表示从数据包开头起12字节的偏移量).这听起来不错吗?

仅供参考,一切都可以正常使用数据包中的A查询.

编辑:显然我的查询都有点格式错误(我不知道与答案不同的查询没有TTL和RDLENGTH/RDATA字段).修复此问题后,我将收到RCODE = 1格式错误回复,确认存在2个查询.这是否意味着不支持每个数据包的多个查询?

编辑2:这是一个查找的hexdump www.google.com:

d8 32 01 00 00 02 00 00 00 00 00 00 03 77 77 77 06 67 6f 6f 67 6c 65 03 63 6f 6d 00 00 01 00 01 c0 0c 00 1c 00 01

我没有看到它有什么问题.

c sockets dns networking network-protocols

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

具有可变行高的SWT表:适用于Linux,但不适用于Mac/Windows

问题:我需要一个具有可变行高的SWT表(JFace TableViewer).事实上,我在我的开发机器(运行Ubuntu 10.10)上解决了这个问题.不幸的是,这在Windows和Mac上都不起作用.

最初,我以为我没有正确使用这些库.但到现在为止,我担心我想要做的事情在Windows上根本不可能.我希望有人能说服我.

重现:我没有在这里提供我的代码,而是构建了一个简单的程序来重现问题.我从以下Snipplet开始:

http://git.eclipse.org/c/platform/eclipse.platform.ui.git/tree/examples/org.eclipse.jface.snippets/Eclipse%20JFace%20Snippets/org/eclipse/jface/snippets/viewers/ Snippet049StyledCellLabelProvider.java

我修改了update()方法,为目录生成两行文本,为文件生成一行(模拟具有可变行高的环境):

...
if (file.isDirectory()) {
    cell.setText(styledString.toString() + "\n"
        + styledString.toString());
    cell.setImage(IMAGE1);
} else {
    cell.setImage(IMAGE2);
}
...

这在Linux上可以正常工作,但在Windows上,所有行都具有相同的高度.具体来说,只能看到一行.

接下来,我试图通过使measure()更加智能来帮助SWT.所以我重写了measure(),如下所示:

protected void measure(Event event, Object element) {
    if (((File) element).isDirectory()) {
        event.height = 32;
    } else {
        event.height = 16;
    }
    super.measure(event, element);
}

结果:所有行都具有高度32.再次,这在Linux上按预期工作.

我担心,在Windows上,所有行都必须是相同的高度.这对我来说是一个显而易见的事.任何人都可以证实这一点,甚至更好,提供一种解决方法吗?

谢谢!

java swt jface

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

如何将POST发送到远程URL?

如何使用VB6将POST请求发送到远程URL?

vb6

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

C编程 - tcp套接字远程端口检索

我有一个tcp连接套接字句柄,通过接受创建.只有手柄,而不是其他结构.如何从句柄中检索其REMOTE端口?我的意思是,连接Remote Client ---> Me的tcp源端口

c sockets network-programming

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

单个修订版的git日志

我有一个提交c.我想得到那个确切的提交c + metainformation的变更集而不是其他的.有没有比这更简单的方法git log -p c^..c

git git-log

167
推荐指数
3
解决办法
7万
查看次数

Django 以 editprofile 形式传递 request.POST 和 request.FILES

我有一个观点,使用户可以编辑自己的个人资料(常用名,用户名等),并包含在一个图像ÌmageField中的UserProfile

@login_required
def editprofile(request):
        user = request.user
        if request.method == 'POST':
                edit_form = EditProfileForm(data = request.POST, user = user)
                if edit_form.is_valid():
                        user = edit_form.save()
                        request.user.message_set.create(message='Votre profil a été modifié.')
                        return HttpResponseRedirect('/')
        else:
                dict = {'first_name':user.first_name, 'last_name':user.last_name, 'email':user.email, 'username':user.username}
                edit_form = EditProfileForm(user = user, data = dict)
        tpl_dict = {'form' : edit_form}
        return render_to_response('editprofile.html', tpl_dict, RequestContext(request))
Run Code Online (Sandbox Code Playgroud)

形式是:

class EditProfileForm(forms.Form):
    first_name = forms.CharField(max_length = 100, required=False)
    last_name = forms.CharField(max_length = 100, required=False)
    email = forms.EmailField()
    username = forms.CharField(max_length …
Run Code Online (Sandbox Code Playgroud)

django request django-forms

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

Vim - 搜索并替换结果

几个月后,我对Vim越来越感到舒服.但是,只有一个简单的功能我无法从网上得到任何答案.那就是"搜索并替换结果".问题是我知道:

:/关键词进行搜索,并按下回车键"关键字"将被高亮显示(当然与集hlsearch)n或N到导航

:%s/keyword/new_keyword/g用new_keyword替换所有出现的关键字.

但我认为必须有搜索方式,并更换任何new_keyword匹配关键字(高亮)没有做":%s /关键字/ new_keyword/G",这是考虑到搜索和替换是很多打字这样的日常功能.

任何答案/评论将不胜感激!

vim search replace find

15
推荐指数
1
解决办法
4277
查看次数

如何检查哪些提交未被推送到原点?

我已经提交到我的本地分行(让我们只说主),并有其他人已经做出"混帐pull'd下来的变化.当我运行'git status'时,我看到类似的东西:

# Your branch is ahead of 'origin/master' by 4 commits.
Run Code Online (Sandbox Code Playgroud)

我怎样才能看到我所做的四个提交的列表尚未被推送到原点?

git

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