clr是啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了clr是啥意思相关的知识,希望对你有一定的参考价值。

clr是什么意思

clr意思是公共语言运行库和Java虚拟机一样也是一个运行时环境,它负责资源管理(内存分配和垃圾收集等),并保证应用和底层操作系统之间必要的分离。CLR存在两种不同的翻译名称:公共语言运行库和公共语言运行时。clr是Common Language Runtime的简写。

CLR和Java虚拟机一样也是一个运行时环境,是一个可由多种编程语言使用的运行环境。CLR的核心功能包括:内存管理、程序集加载、安全性、异常处理和线程同步,可由面向CLR的所有语言使用。并保证应用和底层操作系统之间必要的分离。CLR是.NET Framework的主要执行引擎。

扩展资料

1.为了提高平台的可靠性,以及为了达到面向事务的电子商务应用所要求的稳定性级别,CLR还要负责其他一些任务,比如监视程序的运行。按照.NET的说法,在CLR监视之下运行的程序属于“托管的”代码,而不在CLR之下、直接在裸机上运行的应用或者组件属于“非托管的”的代码。

2.CLR将监视形形色色的常见编程错误,许多年来这些错误一直是软件故障的主要根源,其中包括:访问数组元素越界,访问未分配的内存空间,由于数据体积过大而导致的内存溢出,等等。

参考资料:百度百科——CLR

参考技术A

CLR是通用语言运行平台的简称。

通用语言运行平台(Common Language Runtime,简称CLR)是微软为他们的.Net虚拟机所选用的名称。

这是通用语言架构的微软实现版本,它定义了一个代码运行的环境。

CLR运行一种称为“通用中间语言”的字节码,这个是微软的通用中间语言实现版本。

CLR运行在微软的视窗操作系统上。查看通用语言架构可以找到该规格的实现版本列表。其中有一些版本是运行在非Windows的操作系统中。

扩展资料:

CLR(公共语言运行库,Common Language Runtime)和Java虚拟机一样也是一个运行时环境,是一个可由多种编程语言使用的运行环境。CLR的核心功能包括:内存管理、程序集加载、安全性、异常处理和线程同步,可由面向CLR的所有语言使用。并保证应用和底层操作系统之间必要的分离。CLR是.NET Framework的主要执行引擎。

为了提高平台的可靠性,以及为了达到面向事务的电子商务应用所要求的稳定性级别,CLR还要负责其他一些任务,比如监视程序的运行。按照.NET的说法,在CLR监视之下运行的程序属于“托管的”(managed)代码,而不在CLR之下、直接在裸机上运行的应用或者组件属于“非托管的”(unmanaged)的代码。

跨语言集成的能力:CLR包含了一个丰富的语言特性集,保证了它与各种程序设计语言的兼容性。这一特性集即公用语言规范,稍后将对其进行详细说明。

参考链接:百度百科-CLR

参考技术B

CLR是通用语言运行平台的简称。

通用语言运行平台(Common Language Runtime,简称CLR)是微软为他们的.Net虚拟机所选用的名称。

这是通用语言架构的微软实现版本,它定义了一个代码运行的环境。

CLR运行一种称为“通用中间语言”的字节码,这个是微软的通用中间语言实现版本。

优点

(1)性能得到了改进。

(2)能够轻松使用用其他语言开发的组件。

(3)类库提供的可扩展类型。 

(4)新的语言功能,如面向对象的编程的继承、接口和重载;允许创建多线程的可缩放应用程序的显式自由线程处理支持;结构化异常处理和自定义属性支持。

以上内容参考:百度百科-CLR

参考技术C CLR常用简写词语,CLR是公共语言运行库(Common Language Runtime)和Java虚拟机一样也是一个运行时环境,它负责资源管理(内存分配和垃圾收集等),并保证应用和底层操作系统之间必要的分离。CLR存在两种不同的翻译名称:公共语言运行库和公共语言运行时。

为了提高平台的可靠性,以及为了达到面向事务的电子商务应用所要求的稳定性级别,CLR还要负责其他一些任务,比如监视程序的运行。按照.NET的说法,在CLR监视之下运行的程序属于“托管的”(managed)代码,而不在CLR之下、直接在裸机上运行的应用或者组件属于“非托管的”(unmanaged)的代码。CLR将监视形形色色的常见编程错误,许多年来这些错误一直是软件故障的主要根源,其中包括:访问数组元素越界,访问未分配的内存空间,由于数据体积过大而导致的内存溢出,等等。

CLR还包含了一个丰富的语言特性集,保证了它与各种程序设计语言的兼容性。
参考技术D CLR常用简写词语,CLR是公共语言运行时,Common Language Runtime)和Java虚拟机一样也是一个运行时环境,它负责资源管理(内存分配和垃圾收集),并保证应用和底层操作系统之间必要的分离。

CLR(公共语言运行时)
CLR(公共语言运行时,Common Language Runtime)和Java虚拟机一样也是一个运行时环境,它负责资源管理(内存分配和垃圾收集),并保证应用和底层操作系统之间必要的分离。
为了提高平台的可靠性,以及为了达到面向事务的电子商务应用所要求的稳定性级别,CLR还要负责其他一些任务,比如监视程序的运行。按照.NET的说法,在CLR监视之下运行的程序属于“受管理的”(managed)代码,而不在CLR之下、直接在裸机上运行的应用或者组件属于“非受管理的”(unmanaged)的代码。
CLR将监视形形色色的常见编程错误,许多年来这些错误一直是软件故障的主要根源,其中包括:访问数组元素越界,访问未分配的内存空间,由于数据体积过大而导致的内存溢出,等等。
然而,这种对受管理代码的运行监视是有代价的。虽然当前还不可能精确地得到监视程序运行所需要的开销,但从当前Beta测试版的性能表现来看,正如Microsoft所承认的那样,我们可以预料由它导致的性能降低程度至少达到10%。当然,如果监视程序运行能够将稳定性和可用性提高到一个新的档次,我们可以怀疑10%的性能降低是否还可以称为一件坏事……
在处理器性能改善方面,摩尔定律已经一再被证明是正确的。既然如此,我们要得到一台性能增加了10%的服务器要等待多长时间呢

另有:CLR 公用语言运行时
Common Language Runtime .NET提供了一个运行时环境,叫做公用语言运行时(Common Language Runtime),是一种多语言执行环境,支持众多的数据类型和语言特性。他管理着代码的执行,并使开发过程变得更加简单。这是一种可操控的执行环境,其功能通过编译器与其他工具共同展现。
依靠一种以运行时为目标的编译器开发的代码叫做可操控代码。
元数据:为了使运行时环境可以向可操控代码提供服务,语言编译器需要产生一种元数据,它将提供在使用语言中的类型、成员、引用的信息。运行时环境使用元数据定位并载入类,在内存中展开对象实例,解决方法调用,产生本地代码,强制执行安全性,并建立运行时环境的边界。
可操控执行的含义:对象在执行的过程中完全被运行时环境所控制。运行时环境提供以下服务:自动内存管理、调试支持、增强的安全性及与非可操控性代码的互操作性。条件:1、选择以运行时为目标的语言编译器,如VB、C#;2、在组件的输出类型中使用CLR要求的语言特性。

运行时错误中的“值不在预期范围内”是啥意思?

【中文标题】运行时错误中的“值不在预期范围内”是啥意思?【英文标题】:What does "Value does not fall within expected range" mean in runtime error?运行时错误中的“值不在预期范围内”是什么意思? 【发布时间】:2010-04-14 02:59:38 【问题描述】:

我正在使用 /clr 编写插件(dll 文件)并尝试使用 .NET 实现语音识别。 但是当我运行它时,我收到一个运行时错误,提示“值不在预期范围内”,该消息是什么意思?

    public ref class Dialog : public System::Windows::Forms::Form
    
       public: SpeechRecognitionEngine^ sre;

       private: System::Void btnSpeak_Click(System::Object^  sender, System::EventArgs^  e) 
       
         Initialize();
       

       protected: void Initialize()
         
          //create the recognition engine
          sre = gcnew SpeechRecognitionEngine();

          //set our recognition engine to use the default audio device
          sre->SetInputToDefaultAudioDevice();

          //create a new GrammarBuilder to specify which commands we want to use
          GrammarBuilder^ grammarBuilder = gcnew GrammarBuilder();

          //append all the choices we want for commands.
          //we want to be able to move, stop, quit the game, and check for the cake.
          grammarBuilder->Append(gcnew Choices("play", "stop"));

          //create the Grammar from th GrammarBuilder
          Grammar^ customGrammar = gcnew Grammar(grammarBuilder);

          //unload any grammars from the recognition engine
          sre->UnloadAllGrammars();

          //load our new Grammar
          sre->LoadGrammar(customGrammar);

          //add an event handler so we get events whenever the engine recognizes spoken commands
          sre->SpeechRecognized += gcnew EventHandler<SpeechRecognizedEventArgs^> (this, &Dialog::sre_SpeechRecognized);

          //set the recognition engine to keep running after recognizing a command.
              //if we had used RecognizeMode.Single, the engine would quite listening after
          //the first recognized command.
          sre->RecognizeAsync(RecognizeMode::Multiple);

          //this->init();
         

       void sre_SpeechRecognized(Object^ sender, SpeechRecognizedEventArgs^ e)
       
          //simple check to see what the result of the recognition was
          if (e->Result->Text == "play")
          
             MessageBox(plugin.hwndParent, L"play", 0, 0);
          

                  if (e->Result->Text == "stop")
          
             MessageBox(plugin.hwndParent, L"stop", 0, 0);
          
       
    ;

【问题讨论】:

异常的调用栈是什么? 调试器是您的朋友 - 加载它并找出哪一行导致您出现问题。不知道您的输入是什么以及您是如何传递它的,或者您的确切输出是什么,这很难提供帮助 @SLacks:对不起,我不明白你的问题,我是这种编程的新手。 @Romain:我无法使用调试器,因为我的项目没有生成 exe 文件。基本上,当我单击特定按钮时会调用 Initialize(),但即使在我开始说话之前,我也收到了这个错误。预期的输出是一个消息框,当我说“播放”时显示“播放”,当我说“停止”时显示“停止”。请帮帮我.. 使用 Visual Studio 附加到正在运行的进程(调试/附加到进程...),这样您就可以找出抛出异常的位置。或者,您可以捕获异常并显示堆栈跟踪。 【参考方案1】:

我想我知道是什么导致了这个错误。

错误发生在行

SpeechRecognitionEngine.SetInputToDefaultAudioDevice();

错误意味着输入设备的频道超出了可接受的频道范围。这是因为有时在 Windows XP 上输入设备有 0 个通道。这是调用时的错误返回,从而导致错误。这并不意味着麦克风不起作用。

您可以先将输入记录到 wav 文件中,然后从该 wav 文件中识别语音,如下所示:

SpeechRecognitionEngine.SetInputToWaveFile("input.wav");

我希望这可以为您解决问题。

【讨论】:

【参考方案2】:

您可能正在使用 Windows Pre-Vista (NT5)... 该错误是由于 SAPI 版本不是 5.3 或更高版本... 在 Windows 7 中测试代码,一切都应该运行正常...

您获得的“互操作”内容与本机代码和 .net 托管代码库之间的编组有关...

您可以在库中看到问题,第 299 到 325 行:Source code for the .NET framework in C#, RecognizerBase.cs source code in C# .NET。

【讨论】:

【参考方案3】:

几天前我在工作中遇到了这个错误。经过大量研究和调试后,我发现了以下内容:

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/fc9ba226-7170-49d8-9fb3-c8de05d5b542/systemspeechrecognition-exception-after-prolonged-use?forum=windowsgeneraldevelopmentissues

特别是 Zach Barnard 的回答非常有帮助:

我可能已经找到了解决方案,尽管牺牲了 Alternates,我将 MaxAlternates 设置为 1,并且在运行程序两天后我没有出现异常。希望这对某人有所帮助。

诚然,我不完全理解为什么会抛出这个异常。但是,将 MaxAlternates 设置为 1 为您的 SpeechRecognitionEngine 对象会阻止它。

由于原始问题的作者从未说过实际问题是什么,这可能是一个解决方案,也可能不是。

【讨论】:

以上是关于clr是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

#define _clr(x) memset(x,0xff,sizeof(int)*n) 是啥意思?

sql查询里面xtype='u'是啥意思?

sql查询里面xtype='u'是啥意思?

运行时错误中的“值不在预期范围内”是啥意思?

C#中的泛型是啥意思?

C++/CLI 中的“_in_”和“_in_opt_”是啥意思?