Точнее компилятор не сильно дружит с этой апишкой. Мне нужно получить АПИ по ординалу. Я ставлю pa=GetProcAddress(hLib,1); А он говорит, что должен быть указатель на строку с именем функции, а не 1. Что делать? Конечно можно без труда вставить асм-код, но по моему это не вариант...
Quantum Ого...заработало... респектище... Еще вопрос в догонку.. Как по адресу pa прочитать несколько байт (ну для начала хотя бы 1 байт)
есть масса путей)) ну например Код (Text): PCHAR x = (PCHAR) pa; ну а дальше x[0] первый байт, x[1] второй ...
нафиг лишние переменные плодить. ((BYTE*)pa)[0], ((BYTE*)pa)[1], ((BYTE*)pa)[2], ... Можно сразу словами и даже двойными словами (вместо BYTE написать WORD или DWORD). Чувак, почитай в учебнике преобразование типов
Great Если бы ты читал про преобразования типов, ты бы посоветовал (static_cast<const BYTE*>(static_cast<const void*>(pa)))[0]
Great Смысл - глубочайший Приводить один указатель к другому можно только двумя static_cast через void*. Иначе нет гарантии что все скастуется правильно. На большинстве систем конечно и галимый c-cast сработает, но стандарт ничего не гарантирует
когда я пишу программу сугубо для компилятора MS VC++ для платформы intel x86, меня как-то другое не особо волнует
Great Ну когда я катаюсь по родной деревне на машине, меня тоже мало интересует есть ли у меня аптечка, огнетушитель, трезв ли я и показываю ли поворотники)) Скажем так: static_cast - хорошая привычка.
Ну это понятно. Только если ты пишешь на си, такие привычки ни к чему, поскольку, насколько я помню, там такого вообще нету. А конкретный язык топикстартером не указывался. Вообщем, конечно, это нужно ставить, но иногда это излишне =) ЗЫ. Ну раз у него были проблемы с кастом INT на CHAR*, то скорее всего это с++