小编Lor*_*aka的帖子

使用process.ErrorDataReceived c#获取进程错误输出

我已经构建Form了一段时间使用的App,现在我想要抓住StandardError我的进程以及它的进程standartOutput

我已经在SOMSDN中查看了答案,但却无法正确理解

我的代码:

        public void RunProcess(string FileName, string Arguments,, bool IsPrintOutput = true)
        {
        process = new Process();

                           process.ErrorDataReceived += new DataReceivedEventHandler(OnDataReceivedEvent);
        if (IsPrintOutput) process.OutputDataReceived += new DataReceivedEventHandler(OnDataReceivedEvent);

        process.StartInfo.RedirectStandardOutput = true;
        process.StartInfo.RedirectStandardError = true;

        process.StartInfo.CreateNoWindow = true;

        process.StartInfo.UseShellExecute = false;

        process.StartInfo.FileName =  FileName;
        process.StartInfo.Arguments = Arguments;    
        if (EventWhenExit)
        {
            process.EnableRaisingEvents = true;
            process.Exited += new EventHandler(myprocess_Exited);
        }


        process.Start();
        process.BeginOutputReadLine();
        //run polling on stored logs to print them to screen
        PollingService();
        } …
Run Code Online (Sandbox Code Playgroud)

c# process

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

JAVA getConstructor抛出NoSuchMethodException

我是JAVA的新手,我正在努力学习反思.我想从我的类中获取特定的构造函数(从这里选择示例表单):

public class Example1 {
    public Example1() {
    }

    public Example1(int i) {
    }

    public Example1(String s) {
        System.out.println("using param = " + s);
    }

    public static void main(String[] args) throws Exception {  
        Class<?>[] paramTypes = String.class.getClasses();
        Constructor<Example1> ctor = Example1.class.getConstructor(paramTypes);
        ctor.newInstance("test");
    }
}
Run Code Online (Sandbox Code Playgroud)

NoSuchMethodException试图实例化时得到ctor

我在这里错过了什么?

java reflection

7
推荐指数
1
解决办法
9457
查看次数

AcceptTcpClient vs AcceptSocket

我想编写一个简单的多线程服务器 - 客户端应用程序,在创建tcplistenr时我偶然发现了这两个

public void serverListenr
{
        int MessageLength=0;
        TcpListener peerListener = _infrastructure_TcpServerAndClient.CreateNewTcpListenerANDstart();
        while (true)
        {
            //var Client = peerListener.AcceptTcpClient or   peerListener.AcceptSocket(); ?? 
           new Thread(ServeData).Start(client);
        }
....
}
Run Code Online (Sandbox Code Playgroud)

他们有相同的描述

这两者有什么区别?

c# sockets tcplistener

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

在 C# 中将字符串作为批处理文件运行

我正在编写一个创建批处理文件然后运行的应用程序:

我知道我可以创建一个批处理文件并运行它, 没有问题。

我想做的是:一旦我创建了创建文件的字符串,有什么方法可以将字符串作为批处理文件执行吗?就像是

string BatchFile = "echo \"bla bla\" \n iperf -c 123  ... ... .. "
Diagnostics.Process.Start(BatchFile);
Run Code Online (Sandbox Code Playgroud)

c# windows batch-file

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

将List.foreach替换为LINQ

我是LINQ的新手并且正在做一些实验.

对不起,如果它是重复但我似乎找不到合适的指南(对我来说)

我想替换这段代码:

DataTable table
List<string> header = new List<string>();
table.Columns.Cast<DataColumn>().ToList().ForEach(col => header.Add(col.ColumnName));
Run Code Online (Sandbox Code Playgroud)

LINQ之类的东西:

var LINQheader = from mycol in table.Columns select mycol.ColumnName;
LINQheader.tolist();
Run Code Online (Sandbox Code Playgroud)

但它甚至没有编译.我想要的不是一个单行解决方案,而是想要一些逻辑来理解如何用更复杂的环境构建它(比如用一些逻辑选择XML中的许多节点)

.net c# linq

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

如何验证证书具有“CA=true”基本约束?

我是 openssl API 的新手

当我通过以下命令使用 openssl APP 时:

openssl x509 -in mycert.crt -text -noout
Run Code Online (Sandbox Code Playgroud)

形式它的输出我的兴趣是:

    ...
    X509v3 extensions:
        X509v3 Basic Constraints: critical
            CA:TRUE <-- this section I want to validate in my code
    ...
Run Code Online (Sandbox Code Playgroud)

我想使用 OpenSSL c API 验证 CA 部分,但不知道如何验证。我已经深入了解了 APP src 代码,但当我到达时却迷失了方向

openssl/crypto/ct/ct_prn:102

BIO_printf(out, "\n%*sExtensions: ", indent + 4, "");
if (sct->ext_len == 0)
    BIO_printf(out, "none");
else
    BIO_hex_string(out, indent + 16, 16, sct->ext, sct->ext_len);
Run Code Online (Sandbox Code Playgroud)

我的问题: 迭代扩展、找到基本约束部分并验证我的证书是否为 CA:TRUE 的正确方法是什么

额外问题: 您在 openssl API 中搜索方法的方法是什么

c ssl openssl x509

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

在多核机器上的OpenSSL

我正在进入OpenSSL lib的第一步,感觉有点迷失.我的机器是一个多线程(Xeon系列,如果有人需要信息,可以分享更多)与Linux操作系统.

应用程序构建是SSL代理,因此我需要尽可能快地处理多个TCP流,这意味着我想尽可能地将lib作为无锁运行.

在看了一下这里crypto/crypto.h主要是关于这一节:

# ifndef OPENSSL_NO_LOCKING
#  ifndef CRYPTO_w_lock
#   define CRYPTO_w_lock(type)     \
        CRYPTO_lock(CRYPTO_LOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
#   define CRYPTO_w_unlock(type)   \
        CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
#   define CRYPTO_r_lock(type)     \
        CRYPTO_lock(CRYPTO_LOCK|CRYPTO_READ,type,__FILE__,__LINE__)
#   define CRYPTO_r_unlock(type)   \
        CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_READ,type,__FILE__,__LINE__)
#   define CRYPTO_add(addr,amount,type)    \
        CRYPTO_add_lock(addr,amount,type,__FILE__,__LINE__)
#  endif
Run Code Online (Sandbox Code Playgroud)

我试图挖掘代码/ API并且有点迷失.我的问题是:

  • OpenSSL lib对多核/线程应用程序有什么支持?
  • lib的哪些部分只能有一个实例(单例)?

c c++ openssl

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

如何从 ListView C# 中删除列

我是新手ListView,遇到了一个小问题:

我有一个,我ListViewWinForm其中一行一行地填充了许多列(大约 15 列),稍后我可以选择保存ListViewCSV. 我想要的是一种让用户从 中删除不需要的列的方法ListView

我首先创建列的函数

    private void checkAddListBoxColumns(DomainLayer.ScriptLogic.session sessionToAdd)
    {
        if (IsResultLogListViewFirstRun)
        {
            IsResultLogListViewFirstRun = false;
            this.Invoke((MethodInvoker)delegate
            {
                ResultsLogTab_ListView.Columns.Clear();
            });

            foreach (var item in sessionToAdd.comments.Keys)
            {
                this.Invoke((MethodInvoker)delegate
                {
                    ResultsLogTab_ListView.Columns.Add(item);
                });
            }
            McsTableRow mcsTR = new McsTableRow();
            Type t = mcsTR.GetType();
            foreach (/*PropertyInfo*/FieldInfo info in t.GetFields())
            {
                this.Invoke((MethodInvoker)delegate
                {
                    ResultsLogTab_ListView.Columns.Add(info.Name+" 1");
                });
            }
            foreach (FieldInfo info in t.GetFields())
            {
                this.Invoke((MethodInvoker)delegate
                {
                    ResultsLogTab_ListView.Columns.Add(info.Name+" 2");
                });
            }
            this.Invoke((MethodInvoker)delegate
            { …
Run Code Online (Sandbox Code Playgroud)

c# listview winforms

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

在bash脚本中获取python脚本的退出代码

我是bash的新手,想要抓住我的python脚本退出代码,我script.py看起来像:

#! /usr/bin/python
def foofoo():
    ret = #do logic
    if ret != 0:
        print repr(ret) + 'number of errors'
        sys.ext(1)
    else:
        print 'NO ERRORS!!!!'
        sys.exit(0)
def main(argv):
    #do main stuff
    foofoo()
if __main__ == "__main__":
    main(sys.argv[1:]
Run Code Online (Sandbox Code Playgroud)

我的bash脚本:

#!/bin/bash
python script.py -a a1  -b a2 -c a3
if [ $?!=0 ];
then
    echo "exit 1"
fi
echo "EXIT 0"
Run Code Online (Sandbox Code Playgroud)

我的问题是我总是exit 1在我的bash脚本中打印,如何在我的bash脚本中获取我的python退出代码?

python linux bash exit-code

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

是否可以在C#中同时声明所有类成员公开?

我在业余时间开始学习C++,并注意到了一个很酷的小工具:

从C++ for Dummies第176页:

class SavingsAccount
{
  public:
    unsigned accountNumber;
    double balance;
}
Run Code Online (Sandbox Code Playgroud)

据我了解,这应该声明它下面的所有成员public.我的问题是:C#中有这样的东西吗?

.net c#

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

以 key 作为通用接口的 HashMap

我有一个interface dest和一些实现这个接口的类:

class destImpl1 implements dest { ... } 
class destImpl2 implements dest { ... }
Run Code Online (Sandbox Code Playgroud)

然后我有一个HashMap<dest,double> destHash. 我想要的是destHash像这样实例化:

destHash = new HashMap<destImpl1,double>();
Run Code Online (Sandbox Code Playgroud)

然后像这样:

destHash = new HashMap<destImpl2,double>();
Run Code Online (Sandbox Code Playgroud)

但代码无法编译。我在这里缺少什么?

java generics

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

shared_ptr use_count() 在赋值运算符 (=) 后返回 0

我是新手,shared_ptr无法解决这个问题,

我想存储shared_ptr在 custom 中struct

struct ThreadSafeQMsg
{
    ThreadSafeQMsg(shared_ptr<ptree> control, shared_ptr<uint32_t> data=0, int data_size=0) {
        data_size = data_size; 
        data = data;
        control = control;
    }
    size_t data_size;
    shared_ptr<ptree> control;
    shared_ptr<uint32_t> data;
};

    ThreadSafeQMsg* tmsg = new ThreadSafeQMsg(control,spData, data_size);
    PRINT_LOG("message with data[" << std::dec << tmsg->data_size << ",ref: " << std::dec << tmsg->data.use_count() 
                                 << "] & control[ref: " << std::dec << tmsg->control.use_count() << "]");
Run Code Online (Sandbox Code Playgroud)

在分配之前,我看到在分配后检查时引用计数为 1,我得到:

message with data[140737018606128,ref: 0] & control[ref: 0]
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

c++ shared-ptr c++11

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