Tag: C#的

我怎样才能挂钩在C / C + +的Windowsfunction?

如果我有一个函数foo() ,窗口已经在kernel32.dll中实现,它总是返回true,我可以有我的程序:“bar.exe”钩/绕道Windowsfunction,并使所有进程返回false? 所以,如果我的svchost,例如,调用foo() ,它将返回false而不是true。 对于当前正在运行的所有其他进程,也应该采取同样的行动 如果是这样,怎么样? 我想我正在寻找一个全系统的钩子什么的。

如何在C#中编写parsing器?

我如何去写在C#中的parsing器(recursion下降?)? 现在我只想要一个简单的parsing器来分析算术expression式(并读取variables?)。 虽然后来我打算写一个XML和HTMLparsing器(用于学习的目的)。 我这样做是因为parsing器有用的各种各样的东西:Web开发,编程语言解释器,内部工具,游戏引擎,地图和瓷砖编辑器等等。那么编写parsing器的基本理论是什么?在C#中实现一个? C#是parsing器的正确语言(我曾经用C ++编写过一个简单的算术parsing器,效率很高,JIT编译certificate是否合适?)。 任何有用的资源和文章。 最重要的是,代码示例(或代码示例的链接)。 注意:出于好奇,有没有人回答这个问题在C#中实现了一个parsing器?

高效的无符号签名转换避免了实现定义的行为

我想定义一个函数,将一个unsigned int作为参数,并返回一个int全等模UINT_MAX + 1的参数。 第一次尝试可能是这样的: int unsigned_to_signed(unsigned n) { return static_cast<int>(n); } 但正如任何语言律师所知道的,从无符号到大于INT_MAX的值被赋值是由实现定义的。 (a)只依赖规范规定的行为; 和(b)在任何现代机器上编译成优化编译器。 至于怪异的机器…如果没有签名整型全等模UINT_MAX + 1到无符号整型,让我们说我想抛出一个exception。 如果有不止一个(我不确定这是可能的),假设我想要最大的一个。 好的,第二次尝试: int unsigned_to_signed(unsigned n) { int int_n = static_cast<int>(n); if (n == static_cast<unsigned>(int_n)) return int_n; // else do something long and complicated } 当我不是一个典型的二元补充系统时,我并不在意效率,因为在我看来这是不太可能的。 如果我的代码成为2050年无所不在的符号级系统的瓶颈,那么我敢打赌,有人可以弄清楚,然后优化它。 现在,这第二次尝试是非常接近我想要的。 尽pipe对于某些input来说,强制转换为int是实现定义的,但是由标准保证强制转换为unsigned ,以保留模数UINT_MAX + 1。 所以有条件的确会检查我想要的东西,而且在我可能遇到的任何系统上它都不会编译成任何东西。 但是…我仍然没有首先检查是否会调用实现定义的行为铸造为int 。 在2050年的某个假设系统中,它可以做谁知道什么。 所以我们说我想避免这种情况。 问题:我的“第三次尝试”应该是什么样子? […]

C#vs C – 巨大的性能差异

我发现在C和C#中类似的代码之间有巨大的性能差异。 C代码是: #include <stdio.h> #include <time.h> #include <math.h> main() { int i; double root; clock_t start = clock(); for (i = 0 ; i <= 100000000; i++){ root = sqrt(i); } printf("Time elapsed: %f\n", ((double)clock() – start) / CLOCKS_PER_SEC); } 而C#(控制台应用程序)是: using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication2 { class Program { static void […]

什么是PDB文件?

什么是PDB文件,当我重build我的解决scheme时,如何从release文件夹中排除它?

C#语音识别 – 这是用户说的吗?

我需要编写一个应用程序,使用语音识别引擎 – 内置的Vista或第三方 – 可以显示一个单词或短语,并识别用户何时读取它(或近似值)。 我还需要能够在不同语言之间快速切换,而不必更改操作系统的语言。 用户将在很短的时间内使用该系统。 应用程序需要工作,而不需要首先训练识别引擎对用户的声音。 如果这可以在Windows XP或更低版本的Windows Vista上运行,那也是太棒了。 可选地,系统需要能够以用户select的语言将屏幕上的信息读回给用户。 我可以使用预先录制的配音来解决这个规范,但是最好的方法是使用文本到语音引擎。 谁能为我推荐一些东西?

C / C ++源代码可视化?

基本上我需要生成源代码可视化的工具,如: 函数调用图 依赖关系图 …

什么是一个IntPtr究竟是什么?

通过使用IntelliSense并查看其他人的代码,我遇到了这种IntPtrtypes; 每次需要使用我只是把null或IntPtr.Zero并发现大部分function工作。 究竟是什么以及何时/为什么使用?

根据价值获得字典关键字

可能重复: 获得一个通用字典的价值的关键? 如何通过C#中的值获取字典键? Dictionary<string, string> types = new Dictionary<string, string>() { {"1", "one"}, {"2", "two"}, {"3", "three"} }; 我想要这样的东西: getByValueKey(string value); getByValueKey("one")必须返回"1" 。 这样做的最好方法是什么? 也许HashTable,SortedLists?

在C#中的度量单位 – 差不多

受F#中的度量单位的启发,尽pipe( 在这里 )断言你不能用C#来做,但是我前几天有一个想法,我一直在玩。 namespace UnitsOfMeasure { public interface IUnit { } public static class Length { public interface ILength : IUnit { } public class m : ILength { } public class mm : ILength { } public class ft : ILength { } } public class Mass { public interface IMass : IUnit { […]