Ошибка 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
Следующее, что вы должны сделать, это захватить выходные данные программы и проверить их с помощью шестнадцатеричного редактора, чтобы точно увидеть, что она генерирует и почему принтер ничего не производит.