Как решить ошибку C2668: 'ATL:: inlineisequalunknown' : неоднозначный вызов перегруженной функции
Я использую Visual studio 2008 и хочу использовать класс CRegKey
для этого я просто включаю файл atlbase.h и после компиляции получаю следующую ошибку
Я нигде ничего не использовал из этого файла я просто включил файл и скомпилировал вот и все
Ошибка 1 ошибка C2668: 'ATL:: InlineIsEqualUnknown': неоднозначный вызов перегруженной функции C:\Program файлы (x86)\Microsoft Visual Studio 9.0\VC\atlmfc\include\atlbase. inl 254
Что я уже пробовал:
#include "afxwin.h" #include "Student.h" #include "Teacher.h" #include "Settings.h" #include "About.h" #include "BaseDlg.h" #include "Label.h" #include "XPButton.h" //Here I included the atlbase.h file if i remove this statement then error is not coming #include "atlbase.h"
[no name]
Это не очень хороший вопрос. Публикация заголовочного файла ATL в разделе "Что я пробовал:" не добавляет никакой информации. Лучше всего опубликовать фрагмент вашего кода и объяснить проблему. Ошибка C2668 имеет множество хитов Google, и некоторые из них, вероятно, применимы к вам.
Воспользуйся Улучшить вопрос.
Premnath Mali
Сэр ошибка отображается в этом файле вот почему я поместил код под то что я пробовал
Теперь я добавил какой-то код, все еще получающий ту же ошибку
Jochen Arndt
Пожалуйста, покажите верхнюю часть исходного файла со всеми директивами include и using (namespace).
КСТАТИ:
Вы должны установить
ULONG lrn = MAX_PATH;
чтобы сообщить CRegKey:: QueryStringValue () размер буфера.
Это не является источником ошибки, но может привести к тому, что ваша программа не будет работать должным образом или даже остановится с нарушением доступа.
Premnath Mali
Сэр в моем проекте если я включаю этот файл то эта ошибка показывает если я удаляю этот оператор include то все в порядке мое приложение работает точно
пожалуйста помочь
Jochen Arndt
Когда вы не получили никакой ошибки без включения atlbase.h, она уже включена. Однако тогда ошибки быть не должно.
Вы пометили свой вопрос с помощью MFC. Затем по умолчанию используются предварительно скомпилированные заголовки, которые требуют включения stdafx.h. но вы его не включили. Вы отключили использование предварительно скомпилированных заголовков?
При использовании предварительно скомпилированных заголовков включите stdafx.h в качестве самого первого файла.
Затем включите afxwin.h и atlbase.h из stdafx.h тоже (если это еще не сделано).
Premnath Mali
Это правильное решение для этой ошибки спасибо
Теперь мое приложение работает успешно я включил эти заголовочные файлы как вы сказали
можете ли вы отправить то же самое, что и решение, чтобы я мог принять ваше решение, может быть, это будет полезно для других
Jochen Arndt
Спасибо Вам за ваши отзывы.
Я добавил решение. Насколько я понимаю, источник ошибки был забыт включить stdafx.h.
Premnath Mali
Тот же код, который я пробовал в новом проекте, я включил этот файл и использовал код, как он использует ваше предложение "ULONG lrn=MAX_PATH;" он работает нормально, спасибо за это, но в моем основном проекте все еще есть ошибка