| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > error C2664: cannot convert parameter 2 from |
| Автор: malor 7.7.2011, 13:22 | ||||||
| Подключаю в программе динамически GDI+. В хэдере указано; typedef long(__stdcall*GDIPLUSSTARTUP)(unsigned long*, const GDIPLUS_STARTUP_INPUT*, void*); Начало cpp-файла:
Далее по коду есть строки в одной из функций:
Про 4-ю строку компилятор выдаёт:
VS2008 |
| Автор: baldina 7.7.2011, 13:59 |
зачем это? |
| Автор: bsa 7.7.2011, 14:06 |
| Скажи пожалуйста, а символ GDIPLUSSTARTUP где-нибудь документирован? Я лично не нашел описания. А раз описания нет, то и пользоваться им нельзя. Добавлено через 1 минуту и 20 секунд Он же написал, что динамически подключает GDI+. |
| Автор: malor 7.7.2011, 21:05 | ||
Все было выложено:
bsa>>А раз описания нет, то и пользоваться им нельзя. Компилятор ругался на const, а не на то, что что-то не объявлено. |
| Автор: bsa 8.7.2011, 00:12 |
Поверь мне, преобразование из Type* в const Type* происходит молча и без проблем. А вот преобразование Type1* в Type2* далеко не всегда возможно. |
| Автор: mes 8.7.2011, 00:21 |
как соотноосятся эти два типа друг к другу (typedef?) должно быть известно в точке использования (там, где возникла ошибка).. |
| Автор: volatile 8.7.2011, 00:46 | ||||
mes, они никак не соотносятся Это две разные структуры:
Заглянул в исходник - это что-то! Кроме этих струкутр есть еще несколько копий их-же в разных *.h-никах Посоветовать автору можно только учить язык. |