• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Вывод сообщения не работает

Автор TedyIV, 21.09.23, 16:33:48

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

TedyIV

Доброго времени суток!

Раньше для вывода диалогового окна с сообщением применял следующий код:

BSTR bstr=L"Укажите начальную и конечную точки хорды";
Form2_kompas->ksMessage(bstr);

И это работало. Теперь выдает диалоговое окно, но с сообщением "-1". Подскажите в чем причина?

p3452

Цитата: TedyIV от 21.09.23, 16:33:48Раньше
"Раньше" - это на какой версии SDK и Компас-а?
Цитата: TedyIV от 21.09.23, 16:33:48Теперь
"Теперь" - это на какой версии SDK и Компас-а?

Nipal


TedyIV

Сделал через другую функцию:

ShowMessage("Текст");

Тема закрыта.

Vi2

Цитата: TedyIV от 21.09.23, 16:33:48BSTR bstr=L"Укажите начальную и конечную точки хорды";
Вот эта строчка неправильная: L"строка" - это не BSTR, а LPCWSTR/LPWSTR. Перед строкой нет счётчика, требуемого для BSTR. Иногда это прокатывает, иногда нет.

MrBarry

Наткнулся на аналогичную ошибку. Только в моём случае нужно использовать именно BSTR, метод ничего другого не принимает на вход. Статья от Microsoft предлагает такое:
BSTR MyBstr = SysAllocString(L"I am a happy BSTR");Вот только это ничего не меняет у меня, всё равно висит -1 в итоге...

Vi2

Цитата: MrBarry от 26.09.23, 10:17:59Наткнулся на аналогичную ошибку. Только в моём случае нужно использовать именно BSTR, метод ничего другого не принимает на вход. Статья от Microsoft предлагает такое:
BSTR MyBstr = SysAllocString(L"I am a happy BSTR");Вот только это ничего не меняет у меня, всё равно висит -1 в итоге...
Проще всего использовать _bstr_t или аналогичный: вместо MyBstr при передаче использовать (LPCTSTR)_bstr_t("строка, заданная хоть через char, хоть через wchar") или _bstr_t MyBstr = "I am a happy BSTR" или L"I am a happy BSTR"; и передавать через (LPCTSTR)MyBstr.

Понятно, что может сработать или нет, но формально это будет правильнее.