小编Mar*_*n G的帖子

我应该确保在退出程序之前销毁SDL 2.0对象(渲染器,窗口,纹理等)吗?

关于SDL 2.0的教程使用从main返回的代码,而不首先销毁任何资源指针:

int main(int argc, char** argv){
    if (SDL_Init(SDL_INIT_EVERYTHING) == -1){
        std::cout << SDL_GetError() << std::endl;
        return 1; 
    }

    window = SDL_CreateWindow("Lesson 2", SDL_WINDOWPOS_CENTERED, 
        SDL_WINDOWPOS_CENTERED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
    if (window == nullptr){
        std::cout << SDL_GetError() << std::endl;
        return 2; //this
    }
    renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED 
        | SDL_RENDERER_PRESENTVSYNC);
    if (renderer == nullptr){
        std::cout << SDL_GetError() << std::endl;
        return 3; //and this too
    }
Run Code Online (Sandbox Code Playgroud)

在退出之前,我应该告诉我的终止函数是DestroyRenderer,DestroyWindow,DestroyTexture等吗?

c++ sdl sdl-2

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

关于pandas value_counts函数的说明

有人可以解释一下这行

result = data.apply(pd.value_counts).fillna(0)  
Run Code Online (Sandbox Code Playgroud)

在这里吗?

import pandas as pd 
from pandas import Series, DataFrame

data = DataFrame({'Qu1': [1, 3, 4, 3, 4],
                  'Qu2': [2, 3, 1, 2, 3],
                  'Qu3': [1, 5, 2, 4, 4]})

result = data.apply(pd.value_counts).fillna(0)  

In [26]:data
Out[26]:
Qu1 Qu2 Qu3
0 1 2 1
1 3 3 5
2 4 1 2
3 3 2 4
4 4 3 4

In [27]:result
Out[28]:
Qu1 Qu2 Qu3
1 1 1 1
2 0 2 1
3 2 2 …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

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

Eclipse项目通过环境变量链接资源

我在设置Eclipse C++项目时遇到了麻烦.我需要链接来自不同目录的源,在我的环境中我需要的源实际上有时移动(例如,当我总是想要当前位于目录中的子系统的最新版本时/aaa/bbb/v1.2.3/src).我总是通过linux环境变量知道我想要的源的位置,比如$SYSTEM1_LATEST_ROOT.如果没有这个,我需要在我应该从新位置选择源时更新我的​​所有项目.

我找不到将环境变量包含在链接资源的路径中的方法.包含目录工作正常(这些在我的.cproject文件中定义),例如(.cproject):

<option id="..." name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
    ...
    <listOptionValue builtIn="false" value="${SYSTEM1_LATEST_ROOT}/src"/>
    ...
</option>
Run Code Online (Sandbox Code Playgroud)

对于链接资源(在.project文件中定义)我知道我可以使用路径变量,但这些只在Eclipse中定义,我发现没有办法让它们基于环境变量,而只是相对于我自己的项目位置,不是我想做的.

简而言之,我想根据环境变量链接来自位置的源代码.变量名称是常量,但源的实际位置(通过环境变量已知)不是.

带有相对于项目的路径的工作示例.这不是我想要的(.project):

<linkedResources>
    <link>
        <name>System1_src</name>
        <type>2</type>
        <locationURI>PARENT-6-PROJECT_LOC/src</locationURI>
    </link>
</linkedResources>
Run Code Online (Sandbox Code Playgroud)

我想做的非工作示例(.project):

<linkedResources>
    <link>
        <name>System1_src</name>
        <type>2</type>
        <locationURI>${SYSTEM1_LATEST_ROOT}/src</locationURI>
    </link>
</linkedResources>
Run Code Online (Sandbox Code Playgroud)

有什么建议?

c++ eclipse linux environment eclipse-cdt

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

LINUX-KERNEL:Perf 报告共享对象在 ARM 上显示未知

perf15 天以来我一直面临着一个相关问题。希望这里的大佬们能帮我解决这个问题。

我需要让perf工具在具有 ARM 架构的设备上运行。但是,在记录跟踪点事件然后运行./perf报告时,它显示共享对象名称为[unknown],符号为00000,而对于软件和硬件事件,我没有遇到此问题。我已经交叉编译了perfmailine上可用的工具并将其移植到具有ARM架构的设备上。

在内核 3.4 的基于 ARM 的设备上输出。

./perf record -e kmem:kmalloc cal

[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.007 MB perf.data (~321 samples) ]

./perf report 

Overhead        Command          Shared Object                  Symbol
.......     .............      ..............               ...............
40.78%           cal                [unknown]                [.]00000000
31.6%            cal                [unknown]                [.]00000000

[...]
Run Code Online (Sandbox Code Playgroud)

在 ubuntu 12.04 系统(内核 3.10)上它工作得很好。

x86 架构上的输出

./perf record -e kmem:kmalloc …
Run Code Online (Sandbox Code Playgroud)

linux-kernel perf

5
推荐指数
0
解决办法
2071
查看次数

SDL绘制模糊图像而不缩放

我正在使用SDL(简单直接媒体层)在C++中开展一个项目,但是当我将SDL_Texture绘制到屏幕上时,它很模糊,尽管它没有缩放.

如何加载图像:

SDL_Surface* loadedSurface = IMG_Load("image.png");
SDL_Texture* gImage = SDL_CreateTextureFromSurface( gRenderer, loadedSurface);
Run Code Online (Sandbox Code Playgroud)

如何将图像绘制到屏幕上:

SDL_Rect renderQuad = { x, y, width, height };
SDL_RenderCopy(gRenderer, gImage , NULL, &renderQuad );
Run Code Online (Sandbox Code Playgroud)

看图像,左边是程序,右边是原始:

在此输入图像描述

有没有参数忘了设置?SDL这样做是否正常?

我在Windows 8.1 64位计算机上使用32位SDL 2.0.

c++ sdl image sdl-2

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

如何在gitk中配置字体大小?

使用Linux,如何在gitk中配置字体和字体大小?

浏览菜单可能非常令人沮丧,因为它们提供的配置可能性非常小.

linux git gitk

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

如何找到C程序的"退出"

测试是在32-bit x86Linux上进行的.

所以基本上我试图通过在汇编代码中插入检测指令来记录执行的基本块的信息.

我的策略是这样的:在globl数组中写入已执行的基本块的索引,并在阵列已满(16M)时将数组从内存刷新到磁盘.

这是我的问题.当检测二进制文件的执行结束时,我需要将数组刷新到磁盘,即使它没有达到16M边界.但是,我只是不知道从哪里找到assembly程序的退出.

我试过这个:

  1. grep exit从目标汇编程序中,并在call exit指令之前刷新内存.但是根据一些调试经验,目标C程序,比如md5sum二进制文件,exit在完成执行时不会调用.

  2. main功能结束时冲洗内存.但是,在汇编代码中,我只是不知道main函数的确切结束在哪里.我可以做一个保守的方法,比如说,寻找所有的ret指令,但在我看来,并非所有的main函数都以ret指令结束.

所以这是我的问题,如何识别a的确切执行结束assembly code,并在那里插入一些仪表指令?挂钩一些库代码对我来说很好.我理解不同的输入,二进制可以退出不同的位置,所以我想我需要一些保守的估计.我清楚了吗?谢谢!

c linux binary assembly

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

SQL服务器使用"IF变量LIKE模式"

为什么这不起作用?

DECLARE @str varchar = '######'

IF @str LIKE '%###%' SELECT 1
Run Code Online (Sandbox Code Playgroud)

但这很有效

IF '######' LIKE '%###%' SELECT 1
Run Code Online (Sandbox Code Playgroud)

UPDATE

为什么会这样

DECLARE @Comment varchar(255) = '[A-B-C-D]'

IF @Comment LIKE '%[%-%-%-%]%' SELECT 1
Run Code Online (Sandbox Code Playgroud)

但这不起作用?

DECLARE @Comment nvarchar(255) = '[A-B-C-D]'

IF @Comment LIKE '%[%-%-%-%]%' SELECT 1
Run Code Online (Sandbox Code Playgroud)

sql-server

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

初始化中的评估顺序

在以下程序中:

#include <iostream>
struct I {
    int i;
    I(){i=2;}
    I(int _i){i=_i;}
};
int a[3] = {a[2] = 1};
int aa[3][3] = {aa[2][2] = 1};
I A[3] = {A[2].i = 1};
I AA[3][3] = {AA[2][2].i = 1};
int main(int argc, char **argv) {
    for (int b : a) std::cout << b << ' ';
    std::cout << '\n';
    for (auto &bb : aa) for (auto &b : bb) std::cout << b << ' ';
    std::cout << '\n';
    for (auto &B : A) …
Run Code Online (Sandbox Code Playgroud)

c++ initialization language-lawyer aggregate-initialization

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