Abhijeet Bhurke Ответов: 0

Ошибка Chr(STX) и chr(ETX)


Дорогие Все,

У меня есть программа в VS2008/Win7, где я отправляю некоторые данные из своего настольного приложения на принтер Lintec для печати штрих-кода с помощью нуль-модемного кабеля с использованием COM-порта.

В этой программе я использовал Chr(STX) и Chr(ETX). Он показывает правильные данные.

Но когда я использую эту же программу в 64-битной версии Windows10, она показывает разные данные для Chr(STX) и Chr(ETX).

Может ли кто-нибудь помочь мне, где я ошибаюсь?

Что я уже пробовал:

Я пытался проверить код, используя множество форумов, но ни у кого нет ответа.

Dave Kreskowiak

Не видя соответствующего кода, никто не может сказать вам, что с ним не так. STX и ETX не являются частью VB.NET язык, поэтому они должны быть определены где-то в вашем коде.

Abhijeet Bhurke

Дорогой Дэйв,
Спасибо.

Я уже упоминал об этом ниже в своем коде в VS2008.

Общественные константные компании STX в короткий = &ампер;Н2Ѕ
Public Const ETX As Short = &H3S

Кроме того, при использовании этого метода, Когда я пытаюсь скомпилировать свой код в Windows7(32bit)/VS2008, он показывает правильные данные, но когда я пытаюсь скомпилировать один и тот же исходный код в Win10(64bit) и VS2008, он показывает несколько разных кодов.

Я также попытался изменить диспетчер конфигурации на "x86" даже тогда ошибка.
Также я подготовил несколько снимков экрана, но не знаю, как разместить их здесь, на этом форуме.

Если у вас есть ваш электронный адрес, id, я могу отправить его вам.
Пожалуйста, вы можете посоветовать.

Абхиджит

Richard MacCutchan

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

Abhijeet Bhurke

Спасибо тебе, Ричард, за ответ.

В Win7-32 bit/VS2008 при отладке я вижу " Q "
При отладке той же программы в Win10-64bit/VS2008 я вижу " Q(smallsquare)"

В основном пространство до и после Q-это код ASCII для 2 и код ASCII для 3.

Также можете ли вы посоветовать мне, как я могу поделиться фотографией на этом форуме? чтобы показать мою текущую программу.

Richard MacCutchan

Это ничего не значит, кроме того, что вы показываете непечатаемые символы по-разному. Нам нужно точно знать, какие ценности генерируются различными компиляциями.

Abhijeet Bhurke

Привет Ричард,
Можете ли вы поделиться со мной своим личным почтовым идентификатором, чтобы я мог поделиться с вами своими кодами фотографий?
Я понимаю, что для того, чтобы помочь мне, вам нужна надлежащая рекомендация, которую я не могу здесь показать.
Пожалуйста.

Richard MacCutchan

Нет. Я не хочу видеть кодовые картинки. Я хочу, чтобы вы точно проверили, какие значения генерируются компилятором в вашем коде. Я очень сомневаюсь, что он будет генерировать другие значения, чем те, которые вы ожидаете.

Abhijeet Bhurke

Да, Ричард.
В разных ОС можно увидеть разные значения.
Это может быть, я думаю, что создает ошибку для меня.

Richard MacCutchan

Вы действительно проверили в отладчике, что это за значения? Я подозреваю, что единственное, что может отличаться,-это то, что символы могут быть сгенерированы как 16-битные, а не 8-битные значения.

Abhijeet Bhurke

Привет, Ричард.
Я получаю это значение "Q" при компиляции в ОС Win10 с использованием VS2008
Я должен получить "Q"

Richard MacCutchan

Посмотрите, что вы вложили в сообщение выше: две строки, которые совершенно одинаковы. Прекратите использовать то, что отображается в символьной форме, и используйте свой отладчик для просмотра фактических числовых значений.

Abhijeet Bhurke

Дорогой Ричард,
Да, я проверяю свой отладчик и действительно вижу разные значения.
Это трудно объяснить здесь, как я вижу.

я еще раз проверю, как я могу поделиться с вами своими подробностями.
Спасибо

Richard MacCutchan

Что сложного в публикации этих значений в сообщении? Я вижу следующее в отладчике:

STX = &H0002
ETX = &H0003

Abhijeet Bhurke

Дорогой Ричард,
Спасибо. Вы правы со значениями отладчика, но они отправляются в COM - порт принтера в виде специальных символов.
Это в виде (в виде перевернутой буквы - индексного)м(заглавные буквы в верхнем регистре)

Я использую эту программу для печати некоторых штрих-кодов в моем офисе.

Richard MacCutchan

Мне очень жаль, но вы, кажется, ничего не понимаете в компьютерных данных. Значения, отправляемые на принтер, - это чистые байты, значение x02, значение x51 (которое представляет символ Q в большинстве латинских алфавитов) и значение x03. Я предлагаю вам взять книгу по основам; пока вы не поймете этого, вы будете бороться.

Abhijeet Bhurke

Дорогой Ричард,

Спасибо Вам за ответ и постоянную поддержку.
Я буду проверять его снова, пока не добьюсь успеха.

Абхиджит

Richard MacCutchan

Одна вещь, которую вы никогда не объясняли: вы действительно пытались запустить эту программу в 64-битной версии? И если да, то что произошло?

Abhijeet Bhurke

Да, он работает, но не выводится, как ожидалось.

Richard MacCutchan

Следующее, что вы должны сделать, это захватить выходные данные программы и проверить их с помощью шестнадцатеричного редактора, чтобы точно увидеть, что она генерирует и почему принтер ничего не производит.

0 Ответов