Marc_Moi Ответов: 2

Старый C++ с использованием mfc42.dll грохот


Всем привет,

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

Я открыл код и получил код ошибки C6284 в этой строке

стртемп.Формат("cConfig.указатель strsource= % -, 20-и\Н", cConfig.указатель strsource);

но я действительно не знаю, как это исправить, чтобы это снова сработало.

У меня есть 49 таких ошибок.
Я пытаюсь найти решение в сети, но оно не работает для меня, я также пытался отлаживать, но оно не компилируется.

вот еще одна строка, которая имеет ту же проблему с кодом.

стртемп.Формат("\непоправимое отправитель= %-20С приемник= %-20С", fileSender, fileReceiver);
printf(strTemp);

спасибо за вашу помощь, очень ценю.

спасибо

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

Я попробовал кое что найти в сети в доке microsoft по этой ссылке
C6284 | Microsoft Docs[^]
но я не могу заставить его работать
это strTemp.Формат("cConfig.указатель strsource= % -, 20-и\Н", cConfig.указатель strsource);
к
это :strTemp.Формат("cConfig.указатель strsource= % -, 20-и\Н",метод static_cast&ЛТ;тип wchar_t*&ГТ;,cConfig.указатель strsource);

CPallini

Вероятно, вы компилируете проект, используя другой набор символов (например, UNICODE вместо ANSI). Проверьте такую настройку в среде IDE Visual Studio.

2 Ответов

Рейтинг:
2

Gerry Schmitz

Вы бросаете "cConfig.strSource"; вы показываете "coma" перед ним, и это недопустимо. Посмотрите еще раз на пример MS.


Marc_Moi

извините, я не понимаю, что вы имеете в виду.. Я смотрел на это в течение последних 3 часов, пытаясь сделать то, что не сработает. и я только в ошибке 1, у меня есть 49 дел . :(

Marc_Moi

Ладно, я понял, что ты имеешь в виду .. Теперь у меня есть еще одна ошибка, указывающая на то, что нет подходящей функции преобразования из CString в wchar_t.. дамба...

Gerry Schmitz

Вы используете Visual Studio? Есть ли решение или файл проекта? Если вы откроете один из этих файлов в VS, иногда VS сделает для вас "обновление". Иногда...

Marc_Moi

да visual studio 2019 обновлена до последней версии

Marc_Moi

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

Marc_Moi

чтобы увидеть файл, я должен использовать версию blend visual studio.

Stefan_Lang

Хотя кома-это верный источник ошибок, я подозреваю, что вы на самом деле имели в виду "запятую"; - p

Gerry Schmitz

Фу. Я тоже не говорю "пойдем, Ма".: o)

Рейтинг:
2

Stefan_Lang

static_cast (или C-style cast) - это почти всегда(*) неправильный подход! Ошибка явно указывает на то, что используемый тип несовместим с ожидаемым типом, и это верный признак того, что вам нужна фактическая функция преобразования, а не приведение типа!

В случае CStrings вам нужно проверить доступные функции и правильно их использовать. Как указано здесь[^], если strSource имеет тип CString, вы должны использовать метод GetString() для него, а не приводить его к типу, с которым он не совместим.

(*): Исключение составляет использование приведения типа К PCXSTR, поскольку это приведение переопределяется в классе CString для неявного выполнения требуемого преобразования.