Visual studio 2008 如何在.NET中定义应用程序的区域设置 我有一个应用程序开发的Visual C++ 2008 Express版,它在WordWOS XP下运行,它在一台计算机上运行,默认的LangaunGE被设置为英语。但是,如果使用默认语言德语在不同的计算机上运行相同的应用程序,我会遇到问题,因为预定义的字符串无穷在使用ToDouble转换为double时不会重新编码,因为在德语平台上,字符串应该是Unendlich。特别是mscorlib正确抛出FormatException

Visual studio 2008 如何在.NET中定义应用程序的区域设置 我有一个应用程序开发的Visual C++ 2008 Express版,它在WordWOS XP下运行,它在一台计算机上运行,默认的LangaunGE被设置为英语。但是,如果使用默认语言德语在不同的计算机上运行相同的应用程序,我会遇到问题,因为预定义的字符串无穷在使用ToDouble转换为double时不会重新编码,因为在德语平台上,字符串应该是Unendlich。特别是mscorlib正确抛出FormatException,visual-studio-2008,locale,Visual Studio 2008,Locale,如何强制应用程序以英语语言环境运行?我还没有找到任何选择 谢谢您的提示。您可以使用以下选项将当前语言环境设置为英语: Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US", false); 这将迫使我们在当前线程中使用英语。如果您在主Windows窗体线程中执行此操作,那么您的UI区域性将始终为英语。有关更多信息,请参阅 正如Hans在评论中指出的,这不会影响池线程,并且会导致一些难以发现的bug。事实证明,没有全局设置可以

如何强制应用程序以英语语言环境运行?我还没有找到任何选择


谢谢您的提示。

您可以使用以下选项将当前语言环境设置为英语:

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US", false);
这将迫使我们在当前线程中使用英语。如果您在主Windows窗体线程中执行此操作,那么您的UI区域性将始终为英语。有关更多信息,请参阅

正如Hans在评论中指出的,这不会影响池线程,并且会导致一些难以发现的bug。事实证明,没有全局设置可以使每个线程都使用您定义的区域性。如果您想要该功能,您必须创建自己的应用程序范围设置,并确保所有线程都使用它

同样值得一读的是。

使用Convert::ToDouble(str,System::Globalization::CultureInfo::InvariantCulture)

Convert.ToDouble(stringValue, 系统、全球化、文化信息、不变文化)


事实并非如此,运行I/O完成调用和其他调用的线程池线程仍将在系统语言中运行。这可能会导致非常微妙和难以诊断的错误。例如,SortedList突然不再排序。谢谢!可惜没有全局选项。不过,我会看看上面提到的链接。