RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-377539

Shamus Rezol's questions

Martin Hope
Shamus Rezol
Asked: 2023-07-13 00:56:51 +0000 UTC

未调用派生类虚拟析构函数

  • 2

有一种解决方案,其中动态库(SharedLibrary)提供接口(抽象类),另一个项目提供其实现(派生类)。最小示例概念:

解决方案的概念结构

该类Website为放置 URL 的缓冲区分配 64 KB。此外,在不离开构造函数的情况下,模拟异常。预期会Website调用析构函数,但仅调用基类析构函数InternetResource:

Website::ctor
InternetResource::dtor
main::catch 'Oops!'

因此,分配的内存没有被释放:

预期网站实例删除后调试内存泄漏

解决方案

来源

//
// Application/Main.cpp
//

#include <iostream>

#include "Website.hpp"

int main()
{
    try
    {
        __debugbreak(); // for heap snapshot (1)
        Website site("https://stackoverflow.com"); // throws
        return 1; // unattainable
    }
    catch (const std::exception& e)
    {
        std::cout
            << "main::catch '"
            << e.what()
            << "'"
            << std::endl;
    }
    __debugbreak(); // for heap snapshot (2)
    return 0;
}

//
// Application/Website.hpp
//

#pragma once

#include <SharedLibrary/InternetResource.hpp>

class Website : public InternetResource
{
public:
    Website(const char* url);

    virtual ~Website();

    void* Buffer = nullptr;
};

//
// Application/Website.cpp
//

#include "Website.hpp"

#include <iostream>
#include <memory>

Website::Website(const char* url)
{
    std::cout << "Website::ctor" << std::endl;
    this->Buffer = malloc(1 << 16); // 64 kB
    memcpy_s(this->Buffer, 1 << 16, url, strlen(url));
    throw std::exception("Oops!");
}

Website::~Website()
{
    std::cout << "Website::dtor" << std::endl;
    free(this->Buffer);
    this->Buffer = nullptr;
}

//
// SharedLibrary/Dll.hpp
//

#pragma once

#ifdef SHARED_LIBRARY_EXPORTS
#   define SHARED_LIBRARY_API __declspec(dllexport)
#else
#   define SHARED_LIBRARY_API __declspec(dllimport)
#endif

//
// SharedLibrary/InternetResource.hpp
//

#pragma once

#include "Dll.hpp"

class SHARED_LIBRARY_API InternetResource
{
public:
    virtual ~InternetResource();
};

//
// SharedLibrary/InternetResource.cpp
//

#include "InternetResource.hpp"

#include <iostream>

InternetResource::~InternetResource()
{
    std::cout << "InternetResource::dtor" << std::endl;
}
--
-- Premake5.lua
--
workspace "WhatTheDtor"
    location("Build/")

    configurations { "Debug" }
    platforms { "x86" }

function cpp_commons()
    language "C++"
    cppdialect "C++17"
    
    defines { "DEBUG" }
    symbols "On"

    runtime "Debug"
    staticruntime "Off" -- /MDd

    exceptionhandling ("Default") -- /EHsc
end

project "SharedLibrary"
    kind "SharedLib"
    cpp_commons()
    
    files { "./SharedLibrary/**.cpp", "./SharedLibrary/**.hpp" }
    
    defines { "SHARED_LIBRARY_EXPORTS" }

project "Application"
    kind "ConsoleApp"
    cpp_commons()
    
    files { "./Application/**.cpp", "./Application/**.hpp" }

    includedirs { "." }
    dependson { "SharedLibrary" }
    links { "SharedLibrary" }

回放

  1. Application通过和收集文件SharedLibrary。
  2. 使用 premake5 创建解决方案文件。
premake5 vs2022
  1. 打开“./Build/WhatTheDtor.sln”。
  2. 使用堆分析构建并开始调试。
  3. 在嵌入断点处拍摄堆的两个快照。

就这样。在这里您可以看到 64 KB 的未释放内存。

c++
  • 2 个回答
  • 44 Views
Martin Hope
Shamus Rezol
Asked: 2022-05-05 21:43:01 +0000 UTC

如何运行 n 秒的异步任务?

  • 1

再会!

我需要异步运行一些任务System.Threading.Tasks.Task,但问题是它永远不会完成,我的应用程序永远卡在等待它的执行。

具体来说,我一直在使用SslStream. 在客户端应用程序上,我启动了异步身份验证操作 ( await) stream.AuthenticateAsClientAsync(null)。服务器立即拒绝它(认证问题),并且正在运行的异步操作,事实证明,可以无限期挂起。结果,我的客户端应用程序无法继续工作。

问题:我怎样才能异步启动一个任务System.Threading.Tasks.Task,让它在例如 10 秒后被取消?

是的,我看到这个甜蜜的方法重载,但由于我的平台( .Net Framework 4.8 )它不适合。

c#
  • 1 个回答
  • 10 Views
Martin Hope
Shamus Rezol
Asked: 2022-04-15 20:11:02 +0000 UTC

如何用一个元素扩展 Array 类型的静态字段?

  • 1

再会!

我需要在静态类中初始化一些字节序列(A)和字节(B, C, )。D我还static byte[]需要确切地需要两个序列。第一个 - DEFEND_A。她没有问题。第二—— DEFEND_B。它必须包括所有元素DEFEND_A 和字节D。这就是问题所在:我想不出这样一种操作的构造,它可以替换/* ? ? ? */以下代码中的注释:

public static class SMTH_GLOBAL_CLASS {
    public static readonly byte[] A = new byte[] { 1, 2 };
    public static readonly byte   B = 3;
    public static readonly byte   C = 4;
    public static byte[] DEFEND_A = new byte[] { C, B, A[0] };

    public static readonly byte D = 5;
    public static byte[] DEFEND_B = /* ?  ?  ? */;
}

我想出的唯一一件事是以下代码:

byte[] DEFEND_B = new byte[DEFEND_A.Length + 1];
Array.Copy(DEFEND_A, DEFEND_B, DEFEND_A.Length);
DEFEND_B[DEFEND_A.Length] = D;

它的使用不适合我,因为我DEFEND_B不仅想从我插入此代码的方法中访问。同样,DEFEND_B必须是static byte[]类字段。


new byte[] { C, B, A[0], D }我可以在适当的位置使用构造/* ? ? ? */,但这只会使序列的可编辑性复杂化DEFEND_A。


我将清楚而准确地提出问题:我应该用什么结构来代替注释/* ? ? ? */,使其DEFEND_B包含所有元素DEFEND_A和字节D?

c#
  • 2 个回答
  • 10 Views
Martin Hope
Shamus Rezol
Asked: 2022-03-31 01:35:44 +0000 UTC

服务器如何及时向客户端发送游戏事件?

  • 1

我正在开发某种在线客户端-服务器游戏。我的脑海中闪过以下想法:

在授权请求(登录名和密码)之后,客户端会收到其唯一的令牌,服务器可以通过该令牌根据来自客户端的请求识别它,直到其会话关闭。

为什么是令牌?我要求在每次请求后可以(甚至会)关闭套接字。也就是说,通过打开的套接字识别客户端对我来说不是一个选项。

但!游戏而已。所有非视觉效果都将在服务器上进行,所有视觉效果都将在客户端上进行。也就是说,所有的游戏事件都会发生在服务器上,客户端必须及时显示出来。我假设同时会有十几个客户端,每个客户端都会发送许多自己的请求。所以我需要把游戏的事件转给他们!如果服务器只知道一个关于它的令牌,它自己如何与客户端建立连接?这就是我陷入沉思的地方。

我想到的只是添加来自客户端的垃圾邮件请求,作为响应,服务器应通知他已发生的事件。我认为这不是最合理的解决方案。还有其他方法吗?

сокет
  • 2 个回答
  • 10 Views
Martin Hope
Shamus Rezol
Asked: 2022-03-14 23:23:25 +0000 UTC

在 PictureBox 中显示 GIF 透明度的问题

  • 0

表单上有许多动态创建的图片框。它们都是某些面板的子控件。我要显示的图像具有 Alpha 通道。问题是 alpha 通道的解释不正确。

设置属性BackColor没有帮助:PictureBoxes 属于一个面板,所以背景是一个白色的面板。

在网上找了一个工作方法,但是不行(图片不显示):

public class PictureBoxTW : PictureBox
    {
        protected override void OnPaintBackground(PaintEventArgs e)
        // Paint background with underlying graphics from other controls
        {
            base.OnPaintBackground(e);
            Graphics g = e.Graphics;

            if (Parent != null)
            {
                // Take each control in turn
                int index = Parent.Controls.GetChildIndex(this);
                for (int i = Parent.Controls.Count - 1; i > index; i--)
                {
                    Control c = Parent.Controls[i];

                    // Check it's visible and overlaps this control
                    if (c.Bounds.IntersectsWith(Bounds) && c.Visible)
                    {
                        // Load appearance of underlying control and redraw it on this background
                        Bitmap bmp = new Bitmap(c.Width, c.Height, g);
                        c.DrawToBitmap(bmp, c.ClientRectangle);
                        g.TranslateTransform(c.Left - Left, c.Top - Top);
                        g.DrawImageUnscaled(bmp, Point.Empty);
                        g.TranslateTransform(Left - c.Left, Top - c.Top);
                        bmp.Dispose();
                    }
                }
            }
        }
    }

有没有人有现成的方法来解决这个问题,我不需要用铃鼓跳舞?

c#
  • 1 个回答
  • 10 Views
Martin Hope
Shamus Rezol
Asked: 2022-03-05 11:01:34 +0000 UTC

如何删除控制事件处理程序的代码重复?

  • 1

再会。

我寻求帮助以制服我内心的完美主义者。他对我复制代码感到愤慨。现在我来解释一下。

在窗体上,我在一个函数中动态创建了三个控件Panel:PictureBox和Label。最后两个指的是刚刚创建为子控件的第一个控件。

private void ConstructUser(int uidx, string name, string avatar_path);

在单击这些控件中的任何一个时,我想执行一些使用局部变量uidx和name. 除了使用 lambda 事件处理程序之外,我想不出任何其他实现:

Panel ctrl = new Panel();
// ...
ctrl.MouseClick += (sender, e) =>
{
    if (e.Button == MouseButtons.Left)
    {
        ShowUserInfo(uidx, name); // ShowUserInfo - еще одна функция формы.
    }
};

这就是问题。该事件仅在我单击面板时触发ctrl(小于总可点击区域覆盖率的 5%;95% 被子控件占用)。

  • 我无法告诉面板的子控件ctrl我想在元素MouseClick的处理程序中接收它们的事件。MouseClickctrl
  • 我不能将表单函数用作处理程序,因为我需要访问局部变量uidx和name,它们只存在于创建函数的上下文中ConstructUser。
  • 我无法ctrl将我的附加数据添加到面板中,该面板将包含局部变量uidx并name使用表单函数。我认为编写类包装器Panel是荒谬的。我确信他Panel有这样的机会,但我什至还没有意识到。
  • 我无法将 lambda 函数创建为变量。这里对c#的影响已经很小了。Lambda 函数作为变量,必然需要返回值。他不在这儿。

结果,我不得不为我创建的所有控件复制处理程序代码。

ctrl.MouseClick += (sender, e) =>
{
    if (e.Button == MouseButtons.Left)
    {
        ShowUserInfo(uidx, name);
    }
};
_myPictureBox1.MouseClick += (sender, e) =>
{
    if (e.Button == MouseButtons.Left)
    {
        ShowUserInfo(uidx, name);
    }
};
_myLabel1.MouseClick += (sender, e) =>
{
    if (e.Button == MouseButtons.Left)
    {
        ShowUserInfo(uidx, name);
    }
};

我现在不怕这个了:重复三行代码三次。未来会发生什么?然后我会得到你的答案。

我很想看到上面列出的任何或每个点的解决方案的答案。他们中的任何一个都解决了我的问题,而且越多 - 我选择的软件解决方案就越多变。

感谢您的关注。

附件 A

以上所有内容都足以回答,但我将从主表单中给出此处特色功能的代码Form1。这是为了以防你想完全重复我的情况。

private void ShowUserInfo(int uidx, string name)
{
    Form2 _ = new Form2(uidx, name); // Ошибка? Можете просто удалить тело этой функции.
    _.Show();
}

private int offset = 0; // px; c++ like static local variable...
private void ConstructUser(int uidx, string name, string avatar_path)
{
    // CONTROLS:
    int cx_w = SystemInformation.FixedFrameBorderSize.Width * 2 + SystemInformation.VerticalScrollBarWidth;

    Panel ctrl       = new Panel();
    ctrl.Parent      = panel1; // Ошибка? Обязан быть. Не забудьте свойство AutoScroll = true.
    ctrl.BorderStyle = BorderStyle.FixedSingle;
    ctrl.Location    = new Point(0, offset);
    ctrl.Size        = new Size(ctrl.Parent.Width - cx_w, 64);
    ctrl.Font        = ctrl.Parent.Font;
    ctrl.Parent.Controls.Add(ctrl);

    offset += ctrl.Size.Height + 12; // h + padding

    PictureBox avatar  = new PictureBox();
    avatar.Parent      = ctrl;
    avatar.BorderStyle = BorderStyle.None;
    avatar.Location    = new Point(0, 0);
    avatar.SizeMode    = PictureBoxSizeMode.StretchImage;
    avatar.Size        = new Size(64, 64);
    avatar.Image       = Image.FromFile(avatar_path);
    avatar.Parent.Controls.Add(avatar);

    Label nm     = new Label();
    nm.Parent    = ctrl;
    nm.TextAlign = ContentAlignment.MiddleLeft;
    nm.Location  = new Point(avatar.Size.Width + 6, 0);
    nm.Size      = new Size(nm.Parent.Width - avatar.Width - 12 - SystemInformation.BorderSize.Width * 2, nm.Parent.Height);
    nm.Font      = nm.Parent.Font;
    nm.Text      = name;
    nm.Parent.Controls.Add(nm);

    // COLORS:
    avatar.BackColor = Color.Bisque;
    ctrl.BackColor   = Color.Coral;
    nm.BackColor     = Color.Silver;

    // EVENTS:
    ctrl.MouseClick += (sender, e) =>
    {
        if (e.Button == MouseButtons.Left)
        {
            ShowUserInfo(uidx, name);
        }
    };
    avatar.MouseClick += (sender, e) =>
    {
        if (e.Button == MouseButtons.Left)
        {
            ShowUserInfo(uidx, name);
        }
    };
    nm.MouseClick += (sender, e) =>
    {
        if (e.Button == MouseButtons.Left)
        {
            ShowUserInfo(uidx, name);
        }
    };
}
c#
  • 1 个回答
  • 10 Views
Martin Hope
Shamus Rezol
Asked: 2022-02-11 23:42:32 +0000 UTC

创建有效的 std::regex 会导致语法错误

  • 2

问题

创建对象std::regex会导致语法异常,但我和在线服务均未在初始化表达式中看到语法错误。

例子

#include <regex>
#include <iostream>

using namespace std;

int main() {
    try {
        regex R("^([^;]+);(?:\\s*([^=]+)=((?<q>\"?)([^\"]*)\\k<q>);?)*$", regex_constants::ECMAScript);
    }
    catch (const regex_error& e) {
        cout << "regex_error caught: " << e.what() << '\n';
        if (e.code() == regex_constants::error_brack) {
            cout << "The code was error_brack\n";
        }
    }
    return 0;
}

结论

regex_error caught: regex_error(error_syntax)

笔记

  • 没有屏幕截图:^([^;]+);(?:\s*([^=]+)=((?<q>"?)([^"]*)\k<q>);?)*$
  • 在regex101.com 上

问题

  • 这个问题的原因是什么?
  • 如果是语法错误,那么也许您知道有助于找到此类技巧的服务?
c++
  • 1 个回答
  • 10 Views
Martin Hope
Shamus Rezol
Asked: 2020-07-05 00:52:23 +0000 UTC

冻结主线程

  • 0

如何更称职地冻结主线程?


例如,有一个无终端 ( .pyw ) (* 1 ) 脚本

import threading
import keyboard

class Test(threading.Thread):

    def __init__(self):
        super().__init__()

    def run(self):

        while True:
            print("kill me")

def Trigger():
    Test().start()

keyboard.add_hotkey("alt+f1", Trigger)

(* 1 ) 即不适合使用终端输入()、msvcrt.getch()等。

其含义是当按下某个组合键时启动一些动作。为此,使用键盘最方便,但是,通过添加热键,主程序当然会结束,这与想法不符。这里主程序应该挂起,因为子线程等待组合被按下(〜键盘被创建,不可修改)。


while True: pass

,将 CPU 提高到 50% 是不可接受的。


while True: time.sleep(2**15)

我想避免(出于教育目的考虑)。

python
  • 1 个回答
  • 10 Views
Martin Hope
Shamus Rezol
Asked: 2020-06-25 11:34:35 +0000 UTC

创建一个类的继承者,在单个变量的舔上有所不同

  • 1

有必要创建许多相同类型的类,其中事实上唯一的类变量不同。我记得我为这个类创建语法做了一个实现:class Token001(Token, "вот эта строчка в ту самую переменную"): pass,但是,在我的一生中,我不记得通过实例构造函数__new__或__init_subclass__. 基本上,通过 on 方法的实现尝试以TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases. 我在某个地方很愚蠢,但这里有一些山:/

#class Token(object): ...

class Sign(object): #(Token):

    keyword = None

    def __init_subclass__(cls, keyword):

        cls.keyword = keyword

class Sign001(Sign, "sign 001"): pass
class Sign002(Sign, "sign 002"): pass
#...

 

Traceback (most recent call last):
  File "C:\Users\Shamus_Rezol\Desktop\dwe.py", line 11, in <module>
    class Sign001(Sign, "sign 001"): pass
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases

通过差不多__new__。我不明白怎么了?


是的,你可以改写pass,keyword = ..但这个实现对我来说并不有趣。

python
  • 1 个回答
  • 10 Views
Martin Hope
Shamus Rezol
Asked: 2020-06-11 17:41:06 +0000 UTC

类操作构造函数不构造

  • 0

有一类二维向量。

class vec(object):

    def __init__(self, x=int(), y=int()):

        self.x=x
        self.y=y

需要用类声明操作方法(vec + vec, -, *, /, //, ...)

...
    def __add__(self, vector):

        return self.__class__(self.x + vector.x, self.y + vector.y)
...

它们的不同之处仅在于方法名称和两个相同的字符。从这个想法开始,我开始思考这些方法的构造函数。

一般来说,我所有的选择都与此没有什么不同:

...
    def __math__(self, vector, operation):

        return eval(f"self.__class__(self.x {operation} vector.x, self.y {operation} vector.y)")

    def __init__(self, x=int(), self.y=int()):

        ...
        for attr, operation in (("add", '+'), ):

            setattr(self, f"__{attr}__", lambda self, vector: self.__math__(vector, operation)
...

在我看来,构造函数应该成功地正确添加了所有方法。在操作之前没有发生错误,但是在构造函数没有构造任何东西之后:

>>> vec(5, 5) + vec(2, 15)

Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'vec' and 'vec'

他的问题是什么?也许你知道如何让设计师变得更好?


有趣的测试:

class vec(object):

    def __math__(self, vector, operation):

        return eval(f"self.__class__(self.x {operation} vector.x, self.y {operation} vector.y)")

    def __init__(self, x=int(), y=int()):

        self.x=x
        self.y=y

        for name, operation in (("add", '+'), ):

            setattr(self, f"__{name}__", lambda self, vector: self.__math__(vector, operation))

if __name__ != "__main__":

    try:

        vec(100, 500) + vec(900, 500)

    except TypeError:

        print("Failed\n", dir(vec()), '\n\n')

在终端中导入带有此测试的库。结果:

>>> import muz
Failed
 ['__add__', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__lt__', '__math__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'x', 'y']

>>>  muz.vec().__add__(muz.vec(7, 6), muz.vec(5, 2))
<muz.vec object at 0x00E3BB50>

即注意“失败”:加法运算vec + vec 是不可能的。接下来我们打印向量类的属性列表。注意属性列表的第一个元素:__add__可用。看起来,你的问题是什么,该死的?我设法只以某种破碎的方式调用__add__它(从底部开始的第二行)。

python
  • 1 个回答
  • 10 Views
Martin Hope
Shamus Rezol
Asked: 2020-04-02 23:49:31 +0000 UTC

一个简单神经网络的初始化随机权重失败

  • 0

有一些图像识别功能为此目的使用神经网络。需要明确的是,它接受对象 A、对象 B 和未定义的对象。它的任务是确定:第三个A还是B?训练数据是已知对象。现在,让我们跳过这一点。

了解更多关于训练这个神经网络的过程。存在神经网络不训练的权重的随机初始化。即第二层的识别误差保持在0.5±0.05或0.25±0.05以内。

我在训练过程本身中确定这些情况:如果在大量重复时误差大于阈值,那么我们从权重初始化的那一刻起重复整个训练过程。也就是说,我们正在尝试使用新的权重。

一切都会好起来的,但是白蚁会吃掉这个冷代码的木拐杖。onnaya功能被称为时代的云。训练过程需要,比如说,可接受的 2 秒。这是基于 1 次重复训练。这些相同的重复可能会有所不同!至少 2、10、18、25。随便你……可以忍受。这不是我提出问题的原因。我遇到了以下问题:400 多次重复无济于事。每次秤都初始化失败。神经网络无法克服这个错误阈值的魔咒。在所有重复中,误差在先前指示的范围内波动。

关于随机初始化和神经网络本身。神经网络取自这篇文章。像神经网络一样,函数本身高度适应特定任务。给出完整的代码将是相当困难的。因此,我离开了这篇文章。随意滚动到最后。我的 neroset 代码实际上是相同的。

权重本身的初始化:

in_connections =numpy.prod(объект_а.shape)
out_connections=2#  так как у нас два изображения в тренировочных данных. На самом деле у меня их больше.
syn0=2 * numpy.random.random((in_connections, out_connections)) - 1
syn1=2 * numpy.random.random((out_connections, 1)) - 1
  1. 我已经尝试通过根据程序运行时间更改 numpy.random.seed (by_random_number) 来解决(尝试失败)(不超过 100,不重复,每 10 次不成功的训练更改一次)。
  2. 已经尝试在单独的测试中重复 400 多个不成功的测试。也就是说,我拿了坏人(数据本身,在这个问题下发生了这个问题),在一个单独的测试中,我无法从 51 次尝试中重复这个问题。记录少于 90。测试是在两个射击范围内进行的:有和没有第一点。

这可能有点矫枉过正,但坏人有 4 个输出为 1 的图像和 3 个输出为 0 的图像。

哇..这个拐杖可以用铁制成吗?也许您可以评估权重的初始化情况,从而消除 1000 多个明显糟糕的训练周期?或者有没有治愈的方法?甚至没有猜测,但代码既不会生病也不会被禁用 x)。

python
  • 2 个回答
  • 10 Views
Martin Hope
Shamus Rezol
Asked: 2020-04-01 20:28:27 +0000 UTC

命名图像。蟒蛇3.7

  • 0

例如,有 250 多个小图像。它们被写在它们是什么上。例如,让我们随机抽取水果。我遇到了一个问题:我需要查看 250 张图像,用俄语写下它们的名称(手动;文本识别脚本不适合我的准确度),写下它们的文件路径并按名称对所有文件进行分组。最后,您应该得到以下 JSON 配置(非常粗略):{Apple:["file_1.png", "file_185.png", ..], ..}。

正如您已经理解的那样,手动完成所有操作是不够的。

已经尝试过:

  1. 多线程:1个线程显示图像(cv2.imshow),在另一个我输入名称。没有成功。有很多不同的错误...

  2. 通过 cv2.waitKey 输入名称。没有成功。他非常不愿意认出 Unicode。不知何故,我尝试了一个“看似有效”的脚本,所以我发现它在文件中是胡说八道,而不是 Unicode 在 250 张图片之后......

  3. 通过 pygame 输入名称。Pygame 的 unicode 支持更差。我没有找到写 JEHHYUB、引号和我想要的破折号的方法。*

我有点绝望。什么可以帮助我实现目标?我重复。我需要西里尔文输入,我需要为此查看图像。

python
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5