beginner Не вообще так круто конечно - VC+MSDN+Книжки под DOS. Прикалываетесь? Уж лучше взят Turbo C 3.0. И не лезть пока в Си++. GoldFinch А разве у Си++ есть с этим проблемы?
Ну и? Почему использование GetProcAddress для получения адреса статически импортированного метода представляет какие-то мистические трудности?
Ursus а в чем смысл вызова АПИ для получения адреса уже имеющегося в программе? это примерно то же что, и вызов wsprintf для приведения типов
Причем тут красота? Есть нормальный способ - mov eax,[MessageBoxA], а есть способ "через ж#пу" - GetProcAddressA(hUser32,"MessageBoxA") и там и там в eax будет нужный адрес.
GoldFinch если вы будете юзать ЯВУ, то для статики вы тут не обязательно адрес самой функи получите, может быть адрес переходника, адрес перехода на переходник.
А Бейсик нынче как, в качестве учебного языка совсем забыли.. Эх а как я знакомился с программированием на клоне NES по спектрумовскому учебнику бейсика..
CrazyFun васик учить строго после освоения С++ до беглого чтения и правки любых чужих сорцов без комментов и понимания кода в нех виде под несколько платформ! Иначе психотравма сопровождаемая тяжелой паранойей обеспечена!
Начал учить по книге Х.-Э.Эрбс, О.Штольц "ВВедение в программирование на языке паскаль" 1989 года. Потехоньку врубляюсь что к чему)
Heineken На васме вопросы по паскалю не приветствуются (ну, кроме разве что случаев, прямо связанных с низкоуровневым программированием и тому подобными хитрыми вещами), так что вопросы, ежели будут, либо на специализированных форумах, либо в личку/аську и т.д. тем, кто на паскале работает.
Вспомнил одну забавную конструкцию, жаль что в C# такой нету: Code (Text): switch(a){ case 1: printf("one"); break; for(i=0;i<3;i++){ case 2: printf("two"); } break; case 3: printf("three"); break; } Хотя может это в "улыбнитесь" нужно.
моя первая прога на сях ¦) Code (Text): //#include <stdio.h> //////////////////////////////////////////////////////////////////////////////*/ //int main(){};/* #include <iostream> using std::cout; using std::cin; using std::endl; int main() { unsigned int t,cnt=0; unsigned int ave = 0; bool b=false; for(int i=0;b==false;i++) { cin >> t; t==0?b=1:ave+=t; cnt++; } ave=ave/(cnt-1); std::cout << "Ave == " << ave << endl; std::cin >> t; std::cin; return 0; } //*/ а я помню, я тогда в казахстане с ноутом на балконе сидел .D
моя первая прога на сях отказалась компилится, я забил и еще полгода кодел на асме даж не думая про си. а потом скомпилелелась... но асм не бросил.
А чо к стати по теме отсутствия лишненго))) В бейсике нету таких лишних вещей как в Си и Паскали вроде: Точек с запятой! Разных операторов для присваивания и сравнения - везде используется "=" Можно писать с нумерацией строк и делать goto на номер строки без лишних объявлений ненужных меток! эхх и чтото ещё, уж забыл)))
CrazyFun Есть двоеточия, которые ничем не лучше. И это очень плохо. Разные операторы должны отличаться. Номера строк сами по себе являются "ненужными метками". Там не "лишнего" нет, там даже нужного не хватает.
ну не скажи, например мне нравятся операторы цикла - не бывает лесенок из 5 end а ещё нет таких лишних вещей как описания переменных. Ой а вычисление размера массива, перед его объявление вообще, вообще было моей любимой возможностью Я бы посмотрел на человека который назовет ненужной нумерацию строк при работе в редакторе не позволяющем редактировать введенную строку))) у мну на клоне NES именно такой был) В новых версиях они не нужны)))) ну и не забываем про gosub)))) хз,хз. не помню жалоб на это, в отличии от постоянных жалоб на сишные "==".
Аналогично )) Воапще, если говорить о ЯВУ, то я склоняюсь больше к Си т.к. : 1. Основные оси писаны на Си; 2. Соответсвенно, исходники, семплы в мсдн и тд - на Си; 3. Пробовал давненько писать на паскале - не поперло. Единственный способ до конца понять язык - кодить на нем... Удручает скудность встроенного асма..