小编Ram*_* B.的帖子

PowerShell - Get-Credential解码密码?

我想在我的代码中使用Get-Credential cmdlet.

如何从System.Security.SecureString格式轻松解码密码?

(我必须在代码的一个部分以明文格式使用密码)

$credential = Get-Credential
$credential.Password | ConvertFrom-SecureString
$credential
#How to show password in text format?
Run Code Online (Sandbox Code Playgroud)

我的解决方法,但我认为还有一个正常的方法

$credCachePS = New-Object System.Net.CredentialCache 
$credCachePS.Add("uridummy", "NTLM", $credential) 
$credCachePS | select Password
Run Code Online (Sandbox Code Playgroud)

powershell credentials system.security

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

在c#中是否有等效的typedef?

即类似的东西

typedef Dictionary<string, string> mydict;
Run Code Online (Sandbox Code Playgroud)

我发誓我已经看到它但找不到它

c# generics typedef

10
推荐指数
2
解决办法
5623
查看次数

Git Bash 错误:fsmonitor_ipc__send_query

我只是想问一下这个错误的含义是什么?

error: fsmonitor_ipc__send_query: unspecified error on '.git/fsmonitor--daemon.ipc'
Run Code Online (Sandbox Code Playgroud)

我试图找到与此情况类似的内容,但由于某种原因,我看到的只是另一个非常相似的行错误,但没有解释原因。我在使用 Git Bash 时遇到了这个问题。我正在尝试使用 Bash 终端,因为我希望在使用 VS Code 时分隔不同的窗口。希望这能为其他人提供参考。

git git-bash git-for-windows

10
推荐指数
2
解决办法
3364
查看次数

是否有一种紧凑的方式告诉C#编译器使用基本的Equals和==运算符?

我是C#的新手,我来自C++背景.

我已经定义了一个结构,并且(Microsoft)编译器不断弹出错误CA1815"'GenericSendRequest'应该覆盖Equals"

我仔细阅读并看到C#结构派生自ValueType,它使用反射实现泛型Equals.这让我更加困惑:

  1. 如果只是性能问题,为什么编译器会创建错误而不是警告?
  2. 如果它不能让你使用它,为什么它首先定义通用Equals?

那么如何告诉编译器"我不在乎"?类似于在C++类中声明赋值运算符而不提供定义以确认我知道我在做什么.

到目前为止,我的解决方案包括:

    public static bool operator ==(GenericSendRequest lhs, GenericSendRequest rhs)
    {
        return lhs.Equals(rhs);
    }

    public static bool operator !=(GenericSendRequest lhs, GenericSendRequest rhs)
    {
        return !lhs.Equals(rhs);
    }

    public override bool Equals(object obj)
    {
        return base.Equals(obj);
    }

    //Yes, it also makes me override GetHashCode since I'm overriding Equals.
    public override int GetHashCode()
    {
        return base.GetHashCode();
    }
Run Code Online (Sandbox Code Playgroud)

在我的结构中,这太糟糕了.

编辑: 这是结构定义:

public struct GenericSendRequest
{
        public LiveUser             Sender;
        public LiveUser[]           Receivers;
        public Message              Msg;
        public ServiceHttpRequest   HttpRequest;
}
Run Code Online (Sandbox Code Playgroud)

它的用法只是函数的多个返回值: …

c# struct overriding equals c#-4.0

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

将 Serilog 与 .NET MAUI 结合使用

我有一个非常简单的 .NET MAUI 应用程序(不是 Blazor 应用程序)。我已经安装了 Seriolog 和 Serilog.Extensions.Logging (这样我就可以使用 AppCenter)。我的启动代码中有以下内容来初始化 Serilog

public static MauiApp CreateMauiApp()
{
    // set up logging
    var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
    path = Path.Combine(path, "debugcode.txt");

    Log.Logger = new LoggerConfiguration()
        //.MinimumLevel.Debug()
        .WriteTo.File(path)
        .WriteTo.AppCenterCrashes(restrictedToMinimumLevel: LogEventLevel.Information)
        .WriteTo.Console()
        .CreateLogger();

    var builder = MauiApp.CreateBuilder();
    builder
        .UseMauiApp<App>()
        .ConfigureFonts(fonts =>
        {
            fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
            fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
        })
        .Logging.AddSerilog(Log.Logger);


    return builder.Build();
}
Run Code Online (Sandbox Code Playgroud)

这编译没有问题。我已将日志记录代码添加到 main.xaml.cs 中(该代码只是 VisualStudio 附带的默认 .NET MAUI 测试应用程序)。最小调试行已被注释掉,但如果不注释掉也没有什么区别。

protected override void OnDisappearing()
{
    base.OnDisappearing();
    Log.CloseAndFlush();
}

void OnCounterClicked(object sender, EventArgs e)
{
    count++; …
Run Code Online (Sandbox Code Playgroud)

maui

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

加载DLL不初始化静态C++类

我有一个在运行时加载的DLL.DLL依赖于内部工作的静态变量(它是一个std :: map),这个变量在DLL中定义.

当我在加载后从DLL调用第一个函数时,我从DLL获得了一个SegFault,从未初始化地图.从我从DLL加载中读取的所有内容,静态和全局数据初始化应该在调用DLLMain之前发生.

为了测试静态初始化,我添加了一个打印出消息的静态结构,甚至还提供了一个断点以便进行测量.

static struct a
{
  a(void) { puts("Constructing\n"); }
}statica;
Run Code Online (Sandbox Code Playgroud)

在DLLMain或函数被调用之前没有消息或中断.

这是我的加载代码:

  dll = LoadLibrary("NetSim");
  //Error Handling

  ChangeReliability   = reinterpret_cast<NetSim::ChangeReliability>
                        (GetProcAddress(dll, "ChangeReliability"));


ChangeReliability(100);
Run Code Online (Sandbox Code Playgroud)

我已经验证了dll版本是正确的,多次重建整个项目,但没有区别.我是新鲜的想法.

c++ dll winapi static

7
推荐指数
2
解决办法
9406
查看次数

D模拟到C++成员函数指针,不一定是委托

我一直在学习D,特别是对它的通用编程能力感到非常兴奋.代表很精彩,显然他们已经完全取代了成员函数指针,所以当我想实现类似下面的内容时,我陷入了困境:

template <typename T>
void DispatchMethodForAll(std::vector<T*> & container, void (T::* func)(void))
{
  for(typename std::vector<T*>::iterator it = container.begin(); it != container.end(); ++it)
      (*it)->*func();
}
Run Code Online (Sandbox Code Playgroud)

根据我在D中学到的函数指针和委托,是不是它们都不能这样做,因为函数指针只能为全局函数声明,并且委托必须绑定到一个对象,没有"部分委托" "我能找到.如此处所示,我不能使用委托,因为没有单个对象可以绑定到要调用的方法.

我知道我可以用mixins来做,并且基本上使它成为一个宏.然而,这听起来确实不像D,我认为应该有"正确的方式"

delegates d member-function-pointers generic-programming

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

LD_PRELOAD帮助

我正在尝试使用LD_PRELOAD.

original.cpp

void myPuts() {  
    puts ("Hello myPuts");  
}  
int main() {  
    myPuts();  
    return 0;  
}
Run Code Online (Sandbox Code Playgroud)

hacked.cpp

void myPuts() {  
    std::cout >> "Hello hacked myPuts";  
}
Run Code Online (Sandbox Code Playgroud)

我编译original.cpp:

g++ original.cpp
Run Code Online (Sandbox Code Playgroud)

和hacked.cpp:

g++ -shared -fPIC hacked.cpp
Run Code Online (Sandbox Code Playgroud)

我尝试:

LD_PRELOAD=./hacked.so ./original.out
Run Code Online (Sandbox Code Playgroud)

应该看到字符串"Hello hacked myPuts",出现"Hello myPuts".(如果我尝试"覆盖"puts函数,它可以正常工作)

我错过了什么?

c++ unix shared-libraries ld

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

如何使GCC实例化一个具有非平凡const/dest的类实例?

我正在实施一个分析器.我想使用构造函数/析构函数来跟踪我何时进入/退出函数.

我的代码粗略概述如下:

class Profile
{
   Profile(void);   //Start timing
  ~Profile(void);   //Stop timer and log
};
//...
Game::Game(void) : m_Quit(false)
{
  Profile p();
  InitalizeModules();
  //...
}
Run Code Online (Sandbox Code Playgroud)

但是,当我运行它时,不会调用构造函数和析构函数.即使我反汇编,也没有对Profile :: Profile()的引用.我知道该标准指定编译器无法优化具有非平凡构造函数的实例.

编译器或链接器的命令行上没有优化标志.

我也试过指定属性((used)),但无济于事.

这是反汇编:

(gdb) disassemble Ztk::Game::Game
Dump of assembler code for function Ztk::Game::Game():
   0x00000000004cd798 <+0>:     push   %rbp
   0x00000000004cd799 <+1>:     mov    %rsp,%rbp
   0x00000000004cd79c <+4>:     push   %r12
   0x00000000004cd79e <+6>:     push   %rbx
   0x00000000004cd79f <+7>:     sub    $0x30,%rsp
   0x00000000004cd7a3 <+11>:    mov    %rdi,-0x38(%rbp)
   0x00000000004cd7a7 <+15>:    mov    -0x38(%rbp),%rax
   0x00000000004cd7ab <+19>:    mov    %rax,%rdi
   0x00000000004cd7ae <+22>:    callq  0x4cdc6a <Ztk::Highlander<Ztk::Game, int>::Highlander()> …
Run Code Online (Sandbox Code Playgroud)

c++ optimization gcc constructor compiler-flags

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