А проблема возникает при вызове этого кода из C3D (в обычном Автокаде не проверял, у меня его нет) - вместо "," он выдает ".". Я даже делал "чистую" проверку - создал отдельную DLL, которая как раз и выводит значение знака разделителя. При подключении этой DLL в какой-нибудь экзешник получаю ожидаемую ",", а вот при подключении этой же DLL в приложение, вызываемое из C3D - получаю неведомую ".". Во время отладки вижу имя "ru-RU" и все знаки разделения дробной части - точки, вместо запятых, которые установлены у меня в системе.
Название: Re: Знак разделения дробной части
Отправлено: Александр Ривилис от 10-04-2016, 13:56:06
Так и должно быть. AutoCAD подменяет это значение для того, чтобы правильно (в своём понимании) выводить дробные числа.
Название: Re: Знак разделения дробной части
Отправлено: Алексей Терно от 10-04-2016, 13:58:42
А как тогда из Автокада получить настоящий знак, установленный в системе?
Название: Re: Знак разделения дробной части
Отправлено: Алексей Терно от 10-04-2016, 14:37:04
Есть контакт! Получилось двумя способами: 1. просто использовать CurrentUICulture, вместо CurrentCulture 2. создать новый экземпляр CurrentCulture:
Название: Re: Знак разделения дробной части
Отправлено: Александр Ривилис от 10-04-2016, 20:29:50
Еще один вариант для получения разделителя целой и дробной части на уровне пользователя: прочитать из реестра HKEY_CURRENT_USER\Control Panel\International значение sDecimal.