小编Ch3*_*ire的帖子

Visual Studio 2017 - 找不到Visual C++ Windows窗体

所以,我处于尴尬的境地 - 我想用Visual Studio创建Windows Form App,但我找不到任何创建Visual C++ Windows Form模板的地方.我甚至尝试重新安装Visual C++,添加其他库并在线搜索答案 - 没有结果.

我当然可以在C#中创建新的Winforms:

在此输入图像描述

但不是在C++中:

在此输入图像描述

此外,还检查了Visual Studio Update中的所有可能模块:

在此输入图像描述

我甚至尝试从在线列表中添加模板:

在此输入图像描述

接下来我该怎么办?我使用Visual Studio 2017社区版.

c++ windows-forms-designer winforms visual-studio-2017

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

C++:从带孔的多边形中获取简单多边形的列表

我正在与Boost :: Polygon斗争 - 显然除了我想要的东西之外它可以做任何事情.我有几个边界描述多边形及其孔(在2d空间中).一般来说,我们甚至可以在一个孔(较大的多边形的孔中较小的多边形)或一个多边形中的许多孔中有孔.如果有必要,我可以检查哪个边界描述了一个孔,哪个描述了一个多边形.有时边界是分开的(并且不相互包含),这意味着我们有许多多边形.我想要的是一种方法,它给了我一组简单的,不包含任何孔多边形,它们一起形成输入'多孔'多边形.

c++ boost polygon boost-polygon

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

TabControl在运行时重命名

我正在尝试创建简单的界面,用户可以在TabControl中重命名选项卡.问题是因为我可以通过GetTabRect方法获取制表符的位置,所以我无法将TextBox设置为制表符的位置.这是期望的效果(来自foobar):

在此输入图像描述

这是我的效果:

在此输入图像描述

下面我插入我的代码,我尝试产生这种效果:

      private void renameToolStripMenuItem_Click(object sender, EventArgs e)
    {
        if (selectedTab >= 0 && selectedTab < MainTabs.TabCount)
        {
            Debug.WriteLine("Rename " + MainTabs.Controls[selectedTab].Text);
            Debug.WriteLine(sender.ToString());

            //var CurrentTab = MainTabs.TabPages[selectedTab];
            //TabControl tabControl = MainTabs.Con

            Rectangle rect = MainTabs.GetTabRect(selectedTab);
            Point point = MainTabs.Location;

            Debug.WriteLine(point.ToString() + " " + rect.ToString());

            RenameBox = new TextBox();

            MainTabs.GetControl(selectedTab).Controls.Add(RenameBox);

            //MainTabs

            RenameBox.Show();

            RenameBox.SetBounds(rect.X, rect.Y, rect.Width, rect.Height);


            //MainTab.Controls.Add(RenameBox);
            //this.Controls.Add(RenameBox);
            //components.Add(RenameBox);

            //RenameBox.Location = point;

            //MainTabs.SelectedTab.Controls.Add(RenameBox);

            //MainTabs.GetControl(0).Controls.Add(RenameBox);

            //MainTabs.SelectedTab.

            RenameBox.KeyPress += textBox1_KeyPress;
            //RenameBox.Show();
            //RenameBox.Location = new Point(0, 0);
            //RenameBox.Focus();
            //RenameBox.SetBounds(.GetTabRect(selectedTab));

        }
    }
Run Code Online (Sandbox Code Playgroud)

我应该如何更改代码以便能够在运行时重命名Tab名称?

c# winforms

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

在 ListView 中绘制水平线以显示放置位置

在 Foobar2000 中,我将文件拖放到播放列表中时,ListView 会显示放置曲目的位置:

在此处输入图片说明

我正在寻找实现此功能的方法。它只是由图形库绘制,还是我有一些实现的方法来在 ListView 上显示水平线?

c# winforms

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

使用 Python3 OpenSSL 库解密 S/MIME

我有以下问题。我需要创建一个 Python 程序,我可以在其中从主机下载任何邮件并使用给定的.pfx文件和密码对其进行解密。我正在尝试各种解决方案,但现在我被困在试图强制 OpenSSL.crypto 使用给定的私钥和证书简单地解密任何内容。Google 上的文档和提供的解决方案也很少。有任何想法吗?

这是我的代码:

import pickle, email

file = open('cipher.pickle', 'rb')
msg_data = pickle.load(file)
file.close()

data = msg_data[0]
response = tuple(data)[1]
msg = email.message_from_bytes(response)
message = msg.get_payload()
# message = bytes(message, encoding='utf-8)

print(message) 
#gives encrypted message: 'MIAGCSqGSIb3DQEHA6CAMIACA...14g/EwQIyhd0YOdnRR0AAAAAAAAAAAAA'

from OpenSSL import crypto
ssl_pass1 = "7F63CfcUauAf"
#generated certificate from https://extrassl.actalis.it/portal/uapub/freemail?lang=en for yahoo testmail
#together with password for this certificate
with open('testmail1_yahoo.pfx', 'rb') as f:
    pfx_data = f.read() 

pfx = crypto.load_pkcs12(pfx_data, bytes(ssl_pass1, encoding='utf-8'))
pem = crypto.dump_privatekey(crypto.FILETYPE_PEM, pfx.get_privatekey())
cert …
Run Code Online (Sandbox Code Playgroud)

openssl cryptography python-3.x

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

C++:具有任意数量初始化参数的模板类/函数

我正在尝试在任意数量的维度的几何中创建矢量的模板类.我想创建一个直观的构造函数,我可以传递一些等于维数的初始值设定项.例如:

template<int dim = 3, typename float_t=double> class Vec{
    float_t x[dim];
public:
    Vec(...) {
        //some template magic
    }
};


int main() {
    typedef Vec<3> Vec3d;
    typedef Vec<2> Vec2d;

    double x=1,y=2,z=3;
    Vec3d v(x,y,z);
    Vec2d w(x,y);
}
Run Code Online (Sandbox Code Playgroud)

现在我缺乏黑魔法的知识 - 我的意思是C++模板.我应该如何编写这个例子来实现我的目标?当然,我不想为每个案例编写每个确切的构造函数,这不是C++模板的精神 - 我真的很有兴趣如何以智能的方式实现它.

c++ templates c++11

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

Python3:解码转换为字符串的 UTF-8 字节

假设我有类似的东西:

a = "G?eg?ó?ka"
a = bytes(a, 'utf-8')
a = str(a)
Run Code Online (Sandbox Code Playgroud)

它以以下形式返回字符串:

b'G\xc5\xbceg\xc5\xbc\xc3\xb3\xc5\x82ka'
Run Code Online (Sandbox Code Playgroud)

现在它作为简单的字符串发送(我从eval函数中得到它作为断言)。我现在怎么能得到正常的 UTF-8 形式的起始词?如果有比str(bytes(x))那更好的压缩,我会很高兴听到。

python encode decode utf-8 python-3.x

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

C# - ref this(引用自己)

假设我有一个C++代码:

class A {
    int x = 20;

    void Interact(A* Other) {
        if (x % 2 == 0) { Other->x++; x /= 2; } //some advanced operation
    }
public:
    void MakeInteraction(A* Other) {
        Interact(Other);
        Other->Interact(this);
    }
};

int main() {
    A a, b;
    a.MakeInteraction(&b);
}
Run Code Online (Sandbox Code Playgroud)

问题是,如果我想在C#中做类似的东西,我遇到了障碍 - 当然我不需要使用指针,但我不能使用this对象的引用:

class A
{
    int x = 20;
    void Interact(ref A Other)
    {
        if (x % 2 == 0) { Other.x++; x /= 2; }
    }
    public void MakeInteraction(ref A Other) …
Run Code Online (Sandbox Code Playgroud)

c# reference this

-8
推荐指数
1
解决办法
859
查看次数