При переносе настольного приложения на Windows Mobile я обнаружил следующую ошибку:
Error LNK2019: unresolved external symbol CompleteAuthToken referenced in function
Читая MSDN, я узнал, что CompleteAuthToken поддерживается в Windows CE 2.10 и более поздних версиях, и я должен ссылаться на Secur32.lib, но добавление этой библиотеки не исправило ошибку неразрешенного символа. Любые идеи?
Примечание. Я использую Visual Studio 2008 + Windows Mobile 6.0 SDK.
да, я сделал это, также глядя на secur32.lib с dumpbin, видно, что такого символа нет.





Вы включили Security.h?
http://msdn.microsoft.com/en-us/library/aa374764(VS.85).aspx
неразрешенные внешние элементы означают отсутствующее определение (забыли включить библиотеку, чтобы не дать функции тело, и тому подобное). заголовки в первую очередь предоставляют объявления, а не определения.
Я думаю, что документы MSDN ошибочны. Заглянув в исходный код Platform Builder, я вижу, что CompleteAuthToken () находится в schannel.def и что он встроен в schannel.lib, а не в secure32.lib. Посмотрите, поможет ли это изменение.
Я пробовал использовать schannel.lib, но эта библиотека отсутствует в Windows Mobile SDK 6.0 (она также отсутствует в 5.0).
Спасибо за подсказку о "schannel.dll". CompleteAuthToken () фактически экспортируется этой библиотекой, и я мог загружать его динамически через GetProcAddress (). Обратите внимание, что вся эта проблема решена в Windows CE 7.0.
добавили его как в конфигурацию отладки, так и в конфигурацию выпуска и попробовали полностью перестроить? (извините за банальный вопрос, но кто знает :))