Приложение Vb6 работает в IDE, но исполняемых катастрофических отказах

Ключевой вопрос - то, что глиф в строке берет 32 бита (16 битов для кода символа), но байт только имеет 8 битов для экономии. Непосредственное отображение не существует, если Вы не ограничиваете себя строками, которые только содержат символы ASCII. Система. Текст. Кодирование имеет много способов отобразить строку на байт [], необходимо выбрать тот, который избегает потери информации, и это просто в использовании клиентом, когда она должна отобразить байт [] назад к строке.

Utf8 является популярным кодированием, это компактно и не с потерями.

5
задан Searush 11 October 2012 в 19:20
поделиться

4 ответа

Похоже, обратные вызовы могут происходить в другом потоке, нежели ваше приложение. [ РЕДАКТИРОВАТЬ: Как я вижу, Джим уже предложил. ] Если это так, да, kaboom , как только вы «коснетесь» чего-либо, связанного с OLE, или вызовите среду выполнения. Та же история, что и с обратными вызовами мультимедийного таймера, fwiw, и я подозреваю, что вам придется принять те же меры предосторожности, что и с ними, если это так.

Короткая история с разными обратными вызовами потоков заключается в том, что вы нужно отправить сообщение самому себе, используя PostMessage, объявленный в библиотеке типов, чтобы объект Err не был установлен VB, а затем позвольте обратному вызову вернуться. Вы выполняете свою собственную обработку по получении отправленного сообщения. Вот библиотека типов, которую я использовал для этого с библиотекой таймеров CCRP:

http: // vb.

3
ответ дан 15 December 2019 в 01:08
поделиться

Кто кому перезвонит? Покажите нам небольшой код.

IDE может маскировать реальные проблемы, поэтому простая возможность запуска не дает гарантии, что то, что вы делаете, поддерживается.

Одна из распространенных проблем с обратными вызовами заключается в том, что среда выполнения VB6 не является потоком -safe, поэтому, если другой поток вызывает ваш код VB, вы не можете делать ничего, что вызовет среду выполнения - например, строки доступа или объекты.

Есть способы обойти некоторые из этих проблем, но я думаю, что мы сначала нужно узнать больше.

1
ответ дан 15 December 2019 в 01:08
поделиться

Выполняется ли код из того же места, что и среда IDE ? Скорее всего, это эталонная проблема, и вам необходимо перерегистрировать DLL.

Пакет развертывания должен убедиться, что у вас все установлено.

0
ответ дан 15 December 2019 в 01:08
поделиться

Несколько вопросов:

  1. Исполняемый файл находится на том же компьютере, на котором он был разработан, или на другом?
  2. Используется ли файл манифеста? Если да, то вызывает ли mainfest темы XP?
  3. Также, если используется манифест, использует ли манифест SXS для файлов OCX?
0
ответ дан 15 December 2019 в 01:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: