У меня была аналогичная проблема, и это было потому, что я пытался установить apk на телефоне с предыдущей версией того же apk, и оба apks не были подписаны с тем же сертификатом. Я имею в виду, что когда я использовал тот же сертификат, мне удалось перезаписать предыдущую установку, но когда я изменил сертификат между версиями, установка была невозможна. Вы используете один и тот же сертификат?
Одна возможность находится с Win32 ANSI/Unicode "искажение имени", которое поворачивает символ GetMessage
в также GetMessageA
или GetMessageW
. Существует три возможности:
Windows.h не был загружен, таким образом, GetMessage
остается GetMessage
Windows.h был загружен набором символов для ANSI, таким образом, GetMessage
становится GetMessageA
Windows.h был загружен набором символов для Unicode, таким образом, GetMessage
становится GetMessageW
При компиляции двух различных файлов способами, которые инициировали два различных сценария, Вы получите ошибку компоновщика. Сообщение об ошибке указывает что Comms::Exception
класс был экземпляром № 2, выше - возможно, он используется где-нибудь, что windows.h не был загружен?
Другие вещи я сделал бы в Вашем месте, так же, как обычное дело:
1) Удостоверьтесь, что мой включает, и пути к библиотеке не содержат ничего, что я не ожидаю.
2) Сделайте "сборка чистит" и затем вручную проверяет его, удаляя любые дополнительные объектные файлы при необходимости.
3) Удостоверьтесь, что нет никаких путей hardcoded в, включают операторы, которые не означают то, что они имели в виду, когда проект был первоначально восстановлен.
Править: Борьба с форматированием :(
Это - общая проблема со способом, которым Microsoft обработала ANSI по сравнению с API Unicode. Так как они - все (или в значительной степени все) сделанный путем определения макросов для имен функций, которые решают к или версии 'W' имен функций, у Вас не может безопасно быть идентификатора в Вашем пространстве имен/классе/структуре/перечислении/функции, которое соответствует названию Windows API.
windows.h макросы игнорируют все другие пространства имен.
Предположение Вас не имеет futzed вокруг с настройками Project, удаляя что-то, что Вы не должны иметь (который является, где я ожидал бы, что внешние зависимости как User32.lib будут):
Проверьте Инструменты | Опции | Каталоги | Библиотеки (идущий из памяти здесь) и удостоверьтесь, что Вы не пропускаете common-all-garden каталоги lib разнообразия (снова, без VC6 передо мной, я не могу сказать Вам, что они),
@Curt: Я думаю, что Вы приехали самое близкое. Я не протестировал это, но я думаю, что сортирую, дал ответ в моем исходном вопросе.
GetMessage является определением в Windows.h, перенесенном в ifndef блок для переключения между Ansi (GetMessageA) и Unicode (GetMessageW).
windows.h объявляется наверху IOCompletionPort.h как включение - я устал видеть 7 строк только для включения 1 файла, таким образом, я перенес его его собственный файл, и включает это само. Это также содержит некоторый дополнительный #defines (т.е. ULONG_PTR), поскольку наше главное приложение не скомпилирует с Платформой SDK installed:-(