小编Pri*_*lia的帖子

保护.NET代码免受逆向工程?

混淆是一种方式,但它无法防止破坏应用程序的盗版保护安全性.我如何确保应用程序不被篡改,以及如何确保注册机制不能被反向工程?

此外,可以将C#应用程序转换为本机代码,而Xenocode代价太高.

C#提供了很多的功能,并且是我的代码的理想语言,所以下再次写入整个代码库++是出了问题.

可以从.NET中的签名程序集中轻松删除安全证书.

.net c# obfuscation reverse-engineering

481
推荐指数
19
解决办法
23万
查看次数

如何重置远程GIT存储库以删除所有提交?

如何重置远程和本地GIT存储库以删除所有提交,并以当前Head作为初始提交重新开始.

git version-control

150
推荐指数
2
解决办法
12万
查看次数

如何计算大数模数?

如何在不使用计算器的情况下计算5 ^ 55模数221的模数?

我想密码学中的数论有一些简单的原理来计算这些东西.

math modulo

67
推荐指数
3
解决办法
14万
查看次数

我们可以为RSA提供多个带有一个私钥的公钥吗?

我们是否可以将多个公钥与一个私钥相关联以进行RSA公钥加密?

cryptography rsa public-key-encryption

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

在C#中做一些工作时显示进度条?

我想在做一些工作时显示进度条,但这会挂起UI并且进度条不会更新.

我有一个一个WinForm ProgressForm ProgressBar将无限期地继续以滚动字幕的方式.

using(ProgressForm p = new ProgressForm(this))
{
//Do Some Work
}
Run Code Online (Sandbox Code Playgroud)

现在有很多方法可以解决这个问题,比如使用BeginInvoke,等待任务完成和调用EndInvoke.或使用BackgroundWorkerThreads.

我在使用EndInvoke时遇到了一些问题,尽管这不是问题.问题是哪种方法是用于处理此类情况的最佳和最简单的方法,您必须向用户显示程序正在运行而不是无响应,以及如何使用最简单的代码来处理这种情况,这样可以提高效率并赢得" t泄漏,可以更新GUI.

就像BackgroundWorker需要有多个函数,声明成员变量等一样.然后你需要保持对ProgressBar表单的引用并处理它.

编辑:BackgroundWorker不是答案,因为它可能是我没有得到进度通知,这意味着没有调用,ProgressChanged因为DoWork是对外部函数的单个调用,但我需要继续调用Application.DoEvents();进度条保持旋转.

赏金是针对此问题的最佳代码解决方案.我只需要调用Application.DoEvents()以便Marque进度条可以工作,而worker函数在Main线程中工作,并且它不会返回任何进度通知.我从不需要.NET魔术代码来自动报告进度,我只需要一个比以下更好的解决方案:

Action<String, String> exec = DoSomethingLongAndNotReturnAnyNotification;
IAsyncResult result = exec.BeginInvoke(path, parameters, null, null);
while (!result.IsCompleted)
{
  Application.DoEvents();
}
exec.EndInvoke(result);
Run Code Online (Sandbox Code Playgroud)

保持进度条活着(意味着不冻结但刷新品牌)

c# multithreading begininvoke .net-3.5

26
推荐指数
4
解决办法
12万
查看次数

调用Clear是否也处理了这些项目?

很多时候,有一个明确的方法,从集合中删除所有项目,这些项目也被处置.

喜欢,

toolStripMenuItem.DropDownItems.Clear();
Run Code Online (Sandbox Code Playgroud)

是足够的,或者我应该这样打电话:

foreach (ToolStripItem item in toolStripMenuItem.DropDownItems)
{
  toolStripMenuItem.DropDownItems.Remove(item);
  item.Dispose();
}
Run Code Online (Sandbox Code Playgroud)

编辑:好吧ToolStripItem是一个不是问题的例子,对于那些说清楚已经足够的人我发现了另一个例子,TabControl也有项目集合和清除方法.但TabControls可以有复杂的控件(至少我有),需要显式Dispose(即使它们在某些时候由GC自动处理,导致它们占用大量内存).我想最好的答案是divo评论处理项目,然后打电话给清楚.

.net c# collections dispose clear

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

C#中的多行正则表达式

如何在多行模式下使用正则表达式匹配和替换文本?

我知道RegexOptions.Multiline选项,但是用C#中的新行字符指定匹配all的最佳方法是什么?

输入:

<tag name="abc">this
is
a
text</tag>
Run Code Online (Sandbox Code Playgroud)

输出:

[tag name="abc"]this
is
a
test
[/tag]
Run Code Online (Sandbox Code Playgroud)

啊,我发现了实际的问题.'&'和';' 在Regex中,匹配文本在一行中,而同样需要在Regex中进行转义,以便在有新行的情况下工作.

c# regex

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

在WPF DataGrid中转换和使用DataTable?

在正常的WinForm应用程序中,您可以这样做:

DataTable dataTable = new DataTable();
dataTable = dataGridRecords.DataSource;
Run Code Online (Sandbox Code Playgroud)

但是如何使用WPF数据网格呢?

dataTable = dataGridRecords.ItemsSource;
Run Code Online (Sandbox Code Playgroud)

也不行.

c# wpf datagrid

11
推荐指数
2
解决办法
4万
查看次数

如何识别Excel文件是否符合Excel 95或Excel 97规范?

如何识别Excel文件使用Excel 95或Excel 97规范的位置?即,他们使用哪种版本的BIFF.

excel file-format specifications

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

SpVoice和SpeechSynthesizer有什么区别

使用语音API或SAPI在C#中这两种方法有什么区别?

using SpeechLib;
SpVoice speech = new SpVoice();
speech.Speak(text, SpeechVoiceSpeakFlags.SVSFlagsAsync);
Run Code Online (Sandbox Code Playgroud)

返回Apacela的声音,和

SpeechSynthesizer ss = new SpeechSynthesizer();
ss.SpeakAsync ("Hello, world");
Run Code Online (Sandbox Code Playgroud)

不适用于Apacela的声音.

第一个声音返回所有声音,但第二个声音只返回少量声音.这是与SAPI 5.1和SAPI 5.3相关的吗?

在Vista和XP上的行为是相同的,在SpVoice能够检测到Apacela语音但是使用SpeechSynthesizer时,在XP和Vista上都没有检测到声音.

我猜XP使用SAPI 5.1,而Vista使用SAPI 5.3然后为什么在所有操作系统上都有相同的行为,但与API的行为不同?

另外哪个API更强大,两种方式/ API有什么区别?

c# sapi

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