Это продолжение моего предыдущего вопроса, хотя речь идет о другом.
У меня возникла проблема, когда по какой-то причине в моем сообщении о том, что я передаю от одного процесса к другому, отображается только первая буква, в данном случае «M».
Мое приложение основано на образце MSDN поэтому, чтобы убедиться, что я что-то не пропустил, я создаю отдельное решение, добавляю образец MSDN (без каких-либо изменений для моих нужд), и неудивительно, что он работает нормально.
Теперь о странности: когда я запускаю образец MSDN (как при отладке) и запускаю собственное приложение, текст выводится нормально без каких-либо проблем. Во второй раз, когда я запустил свой самостоятельно, без открытого исходного образца MSDN, он не работает и показывает только "M".
Я заглянул в отладчик и, похоже, не заметил ничего подозрительного (картинка немного устарела, несоответствие типов данных я исправил).
Может ли кто-нибудь предложить решение по этому поводу? Я никогда раньше не сталкивался с подобным. Чтобы взглянуть на мой исходный код, проще просто взглянуть на ссылку, которую я разместил в начале вопроса, нет смысла публиковать ее дважды.
Спасибо за любую помощь.
Изменить:
После дальнейшего расследования кажется, что мое собственное приложение каким-то образом случайно читает память других приложений. Если я «опрашиваю» сообщение, даже не отправляя его через окно производителя, он все равно получает сообщение, которое должно означать, что оно читает его из другого (MSDN) процесса, это также объясняет, почему оно работает правильно только при запуске MSDN. образец сначала.
Я до сих пор не понимаю, почему это происходит, как это остановить и как исправить, это, наверное, самая странная вещь, с которой я столкнулся.
****Решение:****
Хотя это не решает проблему взаимного влияния обоих приложений, мне удалось исправить проблему с текстом. Я не добавил необходимый #include в оба файла, добавив это исправило без каких-либо предупреждений.
Это всегда мелочи.