Перезалил справку, попробовал сделать подсветку кода в примерах. Сделать не сложно, но учитывая, что всего примеров 1320 в 344 файлах, то лучше это дело автоматизировать. Сейчас можно посмотреть как пример в "Двухмерные массивы". Вообще я уже сделал экспорт примеров в файл с меткой разделителем и эту же метку вставил в файл взамен примеров, конвертировал в HTML в Notepad++, теперь осталось разложить файл в массив и взамент меток вставить ассоциированные блоки.
» Вопросы по программированию на C/С++
ну это положим я догадался
Цитата:
а как переделать
vsprintf PROTO C :VARARG
unsigned long __cdecl vsprintf
Цитата:
unsigned long __stdcall RtlRandom(unsigned long z)
{
return 0;
}
а как переделать
vsprintf PROTO C :VARARG
unsigned long __cdecl vsprintf
Цитата:
unsigned long __cdecl Myproc(void)
{
return 0;
}
вот так правильно? обратно экспортируется правильно.
Добавлено:
сделал первую библиотеку батником, сжульничал взял такую в которой только стдкол фукции. работкаит
Цитата:
unsigned long __cdecl Myproc(void)
Да хоть void Myproc(void), для C функций всёравно.
я вообще все на воид переделал
Цитата:
папку BIN собрал, к сожалению самый последний cl.exe не хатит работать, пришлось предпоследний использовать, сейчас продумываю алгоритм для батника.
Добавлено:
два раза статью про этот воид в википендрии прочитал ни фига не понял. ну какие в ж объекты...
руль это такой объект чтоб ехать направо и налево
руль поворачивает колеса и машину уводит в право и лево
кому сдались эти объекты. компьютер тупой как пробка умеет считать только до двух, токо шо быстро
Цитата:
void __stdcall ActivateActCtx ( unsigned long a,unsigned long b)
{
return;
}
void __stdcall AddAtomA ( unsigned long a)
{
return;
}
void __stdcall AddAtomW ( unsigned long a)
{
return;
}
void __stdcall AddLocalAlternateComputerNameA ( unsigned long a,unsigned long b)
{
return;
}
void __stdcall AddLocalAlternateComputerNameW ( unsigned long a,unsigned long b)
{
return;
}
void __stdcall AddRefActCtx ( unsigned long a)
{
return;
}
void __stdcall AddVectoredExceptionHandler ( unsigned long a,unsigned long b)
{
return;
}
void __stdcall AllocConsole ( )
{
return;
}
void __stdcall AllocateUserPhysicalPages ( unsigned long a,unsigned long b,unsigned long c)
{
return;
папку BIN собрал, к сожалению самый последний cl.exe не хатит работать, пришлось предпоследний использовать, сейчас продумываю алгоритм для батника.
Добавлено:
два раза статью про этот воид в википендрии прочитал ни фига не понял. ну какие в ж объекты...
руль это такой объект чтоб ехать направо и налево
руль поворачивает колеса и машину уводит в право и лево
кому сдались эти объекты. компьютер тупой как пробка умеет считать только до двух, токо шо быстро
с умным человеком общается...
ну не понимаю я так. никак. и не считаю что бейсиком мне на всю жизнь испортили стиль программирования. контроллер, прерывание, регистр - понимаю. а изучение объектов - программ созданных другими программистами... хотя допускаю что управляя объектами можно создавать более сложные продукты. но не понимая как руль работает, можно легко машину сломать
Тут мы рискуем залезть в дебри околопрограммерского философствования и утонуть в спорах о длинах, весах и степени прожаренности... Тем не менее, рискну заметить, что создавать большое и многофункциональное приложение на высокоуровневом языке все же легче (по мне, так намного легче), чем на низкоуровневом. Доводилось мне как-то видеть листинг одного приложения на asm'е, которое на C занимало строчек 100 кода. На asm'е же кто-то не поленился 10 страниц накатать...
но он мог и макрофункциями пользоваться. я же любитель, реально практические задачи выпадют редко и посидеть поптимизировать код до талого мне не лень. если бы я писал программы кому то за зарплату конечно бы так не усирался. это развлечение - головоломка. а лучший софт все таки написан на асме
что до лично меня, если мне попадется программа требующая фреймворки я ее в жисть ставить не буду, и на 99% найду замену. и никакие навороченные менюшки от которых комп зависает мне даром не нужны.
Добавлено:
вот ты начал изучать асм. начинаешь делать простые примеры. эти примеры у тебя копятся, а потом ты их используешь как макрофункции своего изготовления. пишешь программу - так это я уже делал. вытаскиваешь код, даже толком уже не помнишь как он работает. этого не делал - сидишь кусочек выдумываешь как получше сделать, так что эта уйма строк с опытом накопленным пишется быстро
что до лично меня, если мне попадется программа требующая фреймворки я ее в жисть ставить не буду, и на 99% найду замену. и никакие навороченные менюшки от которых комп зависает мне даром не нужны.
Добавлено:
вот ты начал изучать асм. начинаешь делать простые примеры. эти примеры у тебя копятся, а потом ты их используешь как макрофункции своего изготовления. пишешь программу - так это я уже делал. вытаскиваешь код, даже толком уже не помнишь как он работает. этого не делал - сидишь кусочек выдумываешь как получше сделать, так что эта уйма строк с опытом накопленным пишется быстро
Доделал справку, надеюсь это заключительный аккорд.
ссылка1, зеркало.
Боялся испортить код в примерах, но по ходу разобрался в предполагаемых проблемах.
1. Код содержал теги HTML, мог бы удалить, но решил игнорировать такие примеры, их не много.
2. Спецсимволы в примерах, типа < формат &код; заменил перед преобразованием.
Перед экпортом блоков кода в игнор были добавлены блоки содержащие две подряд строки начинающиеся с русского текста, код не содержащий хотя бы одного символа англ. буквы или цифры, код содержащий только цифры, пробелы и ./ , код содержащий только англ. буквы и цифры (без спецсимволов).
3. Использовался плаг из Notepad++ для конвертирования в HTML формат.
4. Удалён мусор (теги обрамляющие пробелы и объединение одинаковых следующих друг за другом тегов)
5. Импорт блоков с логом для проверки ошибок, контроль что все замены выполнены.
ссылка1, зеркало.
Боялся испортить код в примерах, но по ходу разобрался в предполагаемых проблемах.
1. Код содержал теги HTML, мог бы удалить, но решил игнорировать такие примеры, их не много.
2. Спецсимволы в примерах, типа < формат &код; заменил перед преобразованием.
Перед экпортом блоков кода в игнор были добавлены блоки содержащие две подряд строки начинающиеся с русского текста, код не содержащий хотя бы одного символа англ. буквы или цифры, код содержащий только цифры, пробелы и ./ , код содержащий только англ. буквы и цифры (без спецсимволов).
3. Использовался плаг из Notepad++ для конвертирования в HTML формат.
4. Удалён мусор (теги обрамляющие пробелы и объединение одинаковых следующих друг за другом тегов)
5. Импорт блоков с логом для проверки ошибок, контроль что все замены выполнены.
неожиданно подкралось, проблема с функциями cdecl видимо те которые включены в старые имена oldnames.lib или типа того. а можно слинковать чтоб линкатор не использовал вообще эти либы левые oldnames.lib libcmt.lib и что самое смешное kernel32.lib ???
Цитата:
.\bin\cl.exe /Ox /LD %~n1.c /link /libpath:.\lib /noentry /def:%~n1.def /NODEFAULTLIB:oldnames.lib /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:kernel32.lib
нет не в либах дело. на memset и масм ругался при компиляции драйвера. не хотел C :VARARG как оно экпортировалось , а хотел C :DWORD,:DWORD,:DWORD
Добавлено:
похоже придется подклеивать библиотеку, сначала делать ее масмом, а в конец приклеивать кусочек фасткол функций си компилятором.
Цитата:
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.00.9176 for 80x86
Copyright (C) Microsoft Corporation 1984-2001. All rights reserved.
ntoskrnl.c
ntoskrnl.c(114) : warning C4391: 'void strlen(void)' : incorrect return type for
intrinsic function, expected 'unsigned int'
ntoskrnl.c(114) : warning C4392: 'void strlen(void)' : incorrect number of argum
ents for intrinsic function, expected '1' arguments
ntoskrnl.c(114) : error C2169: 'strlen' : intrinsic function, cannot be defined
ntoskrnl.c(118) : warning C4391: 'void strcpy(void)' : incorrect return type for
intrinsic function, expected 'char'
ntoskrnl.c(118) : warning C4392: 'void strcpy(void)' : incorrect number of argum
ents for intrinsic function, expected '2' arguments
ntoskrnl.c(118) : error C2169: 'strcpy' : intrinsic function, cannot be defined
ntoskrnl.c(122) : warning C4391: 'void strcmp(void)' : incorrect return type for
intrinsic function, expected 'int'
ntoskrnl.c(122) : warning C4392: 'void strcmp(void)' : incorrect number of argum
ents for intrinsic function, expected '2' arguments
ntoskrnl.c(122) : error C2169: 'strcmp' : intrinsic function, cannot be defined
ntoskrnl.c(130) : warning C4391: 'void strcat(void)' : incorrect return type for
intrinsic function, expected 'char'
ntoskrnl.c(130) : warning C4392: 'void strcat(void)' : incorrect number of argum
ents for intrinsic function, expected '2' arguments
ntoskrnl.c(130) : error C2169: 'strcat' : intrinsic function, cannot be defined
ntoskrnl.c(150) : warning C4391: 'void memset(void)' : incorrect return type for
intrinsic function, expected 'void'
ntoskrnl.c(150) : warning C4392: 'void memset(void)' : incorrect number of argum
ents for intrinsic function, expected '3' arguments
ntoskrnl.c(150) : error C2169: 'memset' : intrinsic function, cannot be defined
ntoskrnl.c(158) : warning C4391: 'void memcpy(void)' : incorrect return type for
intrinsic function, expected 'void'
ntoskrnl.c(158) : warning C4392: 'void memcpy(void)' : incorrect number of argum
ents for intrinsic function, expected '3' arguments
ntoskrnl.c(158) : error C2169: 'memcpy' : intrinsic function, cannot be defined
ntoskrnl.c(242) : warning C4391: 'void _strset(void)' : incorrect return type fo
r intrinsic function, expected 'char'
ntoskrnl.c(242) : warning C4392: 'void _strset(void)' : incorrect number of argu
ments for intrinsic function, expected '2' arguments
ntoskrnl.c(242) : error C2169: '_strset' : intrinsic function, cannot be defined
ntoskrnl.c(346) : warning C4391: 'void _abnormal_termination(void)' : incorrect
return type for intrinsic function, expected 'int'
ntoskrnl.c(346) : error C2169: '_abnormal_termination' : intrinsic function, can
not be defined
.\bin\cl.exe /Ox /LD %~n1.c /link /libpath:.\lib /noentry /def:%~n1.def /NODEFAULTLIB:oldnames.lib /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:kernel32.lib
нет не в либах дело. на memset и масм ругался при компиляции драйвера. не хотел C :VARARG как оно экпортировалось , а хотел C :DWORD,:DWORD,:DWORD
Добавлено:
похоже придется подклеивать библиотеку, сначала делать ее масмом, а в конец приклеивать кусочек фасткол функций си компилятором.
ne_viens
а почему вот этого нет? хотя я понимаю что это тут необязательно
Цитата:
но вот загвоздка - не могу подклеить к библиотеке OBJ
а почему вот этого нет? хотя я понимаю что это тут необязательно
Цитата:
int LibMain (long instance, long reason, long reserved)
{
return 1;
}
но вот загвоздка - не могу подклеить к библиотеке OBJ
bomzzz
это ведь точка входа в динамическую библиотеку под архитектуру Win16, не откапывайте динозавров!
это ведь точка входа в динамическую библиотеку под архитектуру Win16, не откапывайте динозавров!
Точка входа есть и в 32 и 64 бит тоже.
Если в ней никаких действий делать не надо, можно ее вообще не писать- линкер автоматически добавит одну по умолчанию (return 1).
Если надо:
int LibMain(HANDLE h, unsigned int reason, void* reserved)
{
if(DLL_PROCESS_ATTACH == reason)
DisableThreadLibraryCalls(h);
return 1;
}
, тогда так и пишем.
Цитата:
В либе символы, в объекте код- символы с кодом не объединяются.
Цитата:
Что это?!
Если в ней никаких действий делать не надо, можно ее вообще не писать- линкер автоматически добавит одну по умолчанию (return 1).
Если надо:
int LibMain(HANDLE h, unsigned int reason, void* reserved)
{
if(DLL_PROCESS_ATTACH == reason)
DisableThreadLibraryCalls(h);
return 1;
}
, тогда так и пишем.
Цитата:
но вот загвоздка - не могу подклеить к библиотеке OBJ
В либе символы, в объекте код- символы с кодом не объединяются.
Цитата:
...ntoskrnl.c
ntoskrnl.c(114) : warning C4391: 'void strlen(void)' : incorrect return type for
intrinsic function, expected 'unsigned int'...
Что это?!
это ошибко получается у меня такое при попытке создать библиотеку. а склеить вообще не получилось - библиотека нерабочая получилась
http://rghost.ru/44026813
Цитата:
это я как понял имеется ввиду, что слово strlen зарезервированно языком Си и компилить такую функцию он отказывается. я в параметрах поковырялся но как это обойти не нашел. на мсдн предлагается эту фукцию исключить.
юзер32 и кернел32 нормально получаются и работают. а с нтоскернелом постоянная фигня получается. то там то тут. правда он EXE может я это не указал когда делал, дефа то нет
Добавлено:
да точно EXE то я забыл, его надо вторым параметром батнику передавать
inc2lib.C.bat ntoskrnl.inc .exe
но все равно ошибка
Цитата:
Добавлено:
/noHRESULT disable as intrinsic type не помогает от абнормала только
http://rghost.ru/44026813
Цитата:
...ntoskrnl.c
ntoskrnl.c(114) : warning C4391: 'void strlen(void)' : incorrect return type for
intrinsic function, expected 'unsigned int'...
это я как понял имеется ввиду, что слово strlen зарезервированно языком Си и компилить такую функцию он отказывается. я в параметрах поковырялся но как это обойти не нашел. на мсдн предлагается эту фукцию исключить.
юзер32 и кернел32 нормально получаются и работают. а с нтоскернелом постоянная фигня получается. то там то тут. правда он EXE может я это не указал когда делал, дефа то нет
Добавлено:
да точно EXE то я забыл, его надо вторым параметром батнику передавать
inc2lib.C.bat ntoskrnl.inc .exe
но все равно ошибка
Цитата:
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.00.9176 for 80x86
Copyright (C) Microsoft Corporation 1984-2001. All rights reserved.
ntoskrnl.c
ntoskrnl.c(350) : warning C4391: 'void _abnormal_termination(void)' : incorrect
return type for intrinsic function, expected 'int'
ntoskrnl.c(350) : error C2169: '_abnormal_termination' : intrinsic function, can
not be defined
Microsoft (R) Incremental Linker Version 10.00.40219.01
Copyright (C) Microsoft Corporation. All rights reserved.
LINK : fatal error LNK1181: cannot open input file 'ntoskrnl.obj'
Для продолжения нажмите любую клавишу . . .
Добавлено:
/noHRESULT disable as intrinsic type не помогает от абнормала только
Почему нельзя взять готовую C:\WinDDK\7600.16385.1\lib\wxp\i386\ntoskrnl.lib ?
ну я могу только предпологать зачем так делается. почему то hutch так придумал, а кроме него масмом никто не занимается. Four-F для своего KMDKits-а для создания драйверов именно так и сделал, но никто не знал как добавить фасткол функции их просто опускали. а теперь когда стало известно - другое гавно вылезло
Добавлено:
но Four-F тоже некоторые библиотеки передлывал неизвестно как, причем он мне ответил что масмом уже много лет не занимается и просто уже не помнит как что он делал
Добавлено:
может тут дело в экранировании, почему то перед абнормалом два подчерка стоит. может параметр есть чтоб экранировать
Добавлено:
Цитата:
Добавлено:
нагуглил. не отключается эта функция абнормал терминатион никакими средствами. придется на фасме пробовать тоже самое сделать или снова клеить
Добавлено:
но Four-F тоже некоторые библиотеки передлывал неизвестно как, причем он мне ответил что масмом уже много лет не занимается и просто уже не помнит как что он делал
Добавлено:
может тут дело в экранировании, почему то перед абнормалом два подчерка стоит. может параметр есть чтоб экранировать
Добавлено:
Цитата:
#pragma intrinsic(_abnormal_termination)
Добавлено:
нагуглил. не отключается эта функция абнормал терминатион никакими средствами. придется на фасме пробовать тоже самое сделать или снова клеить
Прошлый раз я справшивал про существование интерпретатора Си, нашёл это LittleC.
bomzzz
Насколько я помню, народ занимается созданием import libraries из dll только по лицензионным соображением. Т.е. они таким образом решают юридические, а не технические проблемы.
Насколько я помню, народ занимается созданием import libraries из dll только по лицензионным соображением. Т.е. они таким образом решают юридические, а не технические проблемы.
ItsJustMe
угу я теперь тоже так думаю. только они делаются не из ддлок, а из либов, из дллок не вытащишь инфу о количестве параметров, надо будет в ручную их дезасемблировать
вообщем я вчера несколько драйверов скомпилировал, они запустились, работали, а при повторном запуске винда завалилась. то есть так делать можно только апи функции а все что к ядру имеет отношение так не сделаешь, наверно нужна точна инфа о функции, а может еще чего. так что я вообще это дело похерю. у меня есть все либы даже для 2000-ка
угу я теперь тоже так думаю. только они делаются не из ддлок, а из либов, из дллок не вытащишь инфу о количестве параметров, надо будет в ручную их дезасемблировать
вообщем я вчера несколько драйверов скомпилировал, они запустились, работали, а при повторном запуске винда завалилась. то есть так делать можно только апи функции а все что к ядру имеет отношение так не сделаешь, наверно нужна точна инфа о функции, а может еще чего. так что я вообще это дело похерю. у меня есть все либы даже для 2000-ка
Перезалил справку ссылка1, зеркало.
Все ключевые слова, функции, операторы в примерах теперь являются ещё и локальными ссылками на соответствующие разделы. То есть если непонятно назначение функции, можно всегда "прыгнуть" на страницу описания, и бакспейсом вернуться обратно.
Найдено и исправлено 4 примера, испорченных преобразованием, причём 2 структурных таблицы (раздел "Двоичные деревья") используют UTF8 символ, а страница в "charset=Windows-1251" (Это не исправлял, не критично).
Все ключевые слова, функции, операторы в примерах теперь являются ещё и локальными ссылками на соответствующие разделы. То есть если непонятно назначение функции, можно всегда "прыгнуть" на страницу описания, и бакспейсом вернуться обратно.
Найдено и исправлено 4 примера, испорченных преобразованием, причём 2 структурных таблицы (раздел "Двоичные деревья") используют UTF8 символ, а страница в "charset=Windows-1251" (Это не исправлял, не критично).
bomzzz
Цитата:
Так ее в import library и нет, за исключением случаев, когда имя функции сильно mangled Но такие экземпляры import libraries мне не попадались. Так что в import libraries только точки входа, а описание функций берут из других источников. Так что мне не понятно, почему скопировать lib из SDK религия (т.е. светлейший Столлман) не позволяет, а скопировать header file позволяет.
PS: А зачем lib из lib делать?
Цитата:
из дллок не вытащишь инфу о количестве параметров
Так ее в import library и нет, за исключением случаев, когда имя функции сильно mangled Но такие экземпляры import libraries мне не попадались. Так что в import libraries только точки входа, а описание функций берут из других источников. Так что мне не понятно, почему скопировать lib из SDK религия (т.е. светлейший Столлман) не позволяет, а скопировать header file позволяет.
PS: А зачем lib из lib делать?
да фиг его знает. во первых из них выкидывается лишнее. потом они получаются в два с половиной раза меньше. дистрибутив по размеру вообще 4 мб - сравни со студией, которой только фреймворков надо гиг. потом кое что маскируется для масма, а msvcrt вообще принципиально не фурычит с масмом - не очень понял почему а разбираться руки не дошли - ее надо переделывать, вот она отлично из дллки получается
Ещё раз перезалил справку по Си, ссылки теже. Проверил орфографию, исправлено 131 ошибка (не учитывая повтора однотипных). Просто неприятно было читать с ошибками. Если кому надо могу исходники выложить (6 скриптов), правда написанные на AutoIt3.
AZJIO, я бы исходники взял, если можно.
кто нибудь занимался с игрушкой под названием
Portable Object Compiler
должен переводить Objective-C код в чистый С что очень интересно для обучения но я так и не смог получить из hello.m -> hello.c если если у кого нибудь Portable Object Compiler(по ссылке выше плугин для MVС++) или опыт поставить плугин для MVC++ поделитесь.
Portable Object Compiler
должен переводить Objective-C код в чистый С что очень интересно для обучения но я так и не смог получить из hello.m -> hello.c если если у кого нибудь Portable Object Compiler(по ссылке выше плугин для MVС++) или опыт поставить плугин для MVC++ поделитесь.
dimon0476
Цитата:
Теперь оглядываясь назад, примерно 4 года программирую на AutoIt3, являющимся самым лёгким, и при этом я пока не считаю что достиг предела знания AutoIt3, который бы ограничивал меня в возможностях. Думаю 3-6 месяцев на Си, при условии, если вы знаете несколько языков и считаетесь в них профессионаллами, тогда не спорю.
Цитата:
3. Язык С (язык СИ именно СИ, а не СИ ПЛЮС ПЛЮС) (3 - 6 месяцев)ключевая фраза 3 - 6 месяцев Мои попытки научится программировать приводили в полный тупик полного непонимания, мне казалось это должно быть легко, как если в HTML, которое для меня казалось интуитивным. Ввести размеры окна а не писать как в триггеры памяти в указанные адреса что-то там забивать, которое будет всего лишь камешком в строительстве сложной процедуры. Какой то набор x, y, ничего явного, не за что не зацепишся чтобы сформировать какое то понимание от которого отталкиваться.
Теперь оглядываясь назад, примерно 4 года программирую на AutoIt3, являющимся самым лёгким, и при этом я пока не считаю что достиг предела знания AutoIt3, который бы ограничивал меня в возможностях. Думаю 3-6 месяцев на Си, при условии, если вы знаете несколько языков и считаетесь в них профессионаллами, тогда не спорю.
AZJIO, это я выложил мнение одного человека. Я лично - в университете был предмет информатика и в этом курсе ничего не было, кроме школьного курса информатики и программирования на Паскале. На факультативах рассматривали Дельфи. Но я туда не ходил. поэтому никак не считаюсь ассом в программировании. Так, учусь. Как хобби.
Ещё раз обновил справку ссылка1, зеркало. Функции, ключевые слова подсвеченные по тексту теперь имеют цвет аналогичный как в коде и тоже имеют локальные ссылки. Хотел ещё кнопку копирования кода добавить к блокам кода, но много текста городить приходится в HTML-файлах, пока отказался.
Добавил 49 индексов для вкладки "Указатель", для ключевых слов, циклов, директив.
Опробовал уже скрипт, с прыжком из редактора в справку к выделенному слову в коде.
Добавил 49 индексов для вкладки "Указатель", для ключевых слов, циклов, директив.
Опробовал уже скрипт, с прыжком из редактора в справку к выделенному слову в коде.
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
Предыдущая тема: не знаю как назвать тему :-)
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.