Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вопрос по API

6.6K
25 июля 2006 года
Scaiman
126 / / 25.07.2006
Здравствуйте я недавно начел изучать Assembler и не понимаю некоторых API. Помогите разобраться.
invoke GetCurrentDirectory,40,ADDR Catalog
invoke GetFileSizeEx, Sustem(что здесь указать путь к файлу это понятно),В книге пишется что тут указывают на структуру LARGE_INTEGER для сохранения размера файла так где или как получить размер. Про структуру ничего непонятно там всего в 5 словах.
invoke WriteFile,Путь к файлу, Переменная для записи тоже понятно,?,?,?
И как скопировать в буфер например не 1 строчку а 10.
Какой Api или Macro можно слаживать данные в буфере Catalog и Bufer
C Macro вообще толком нечего непонятно
Такая же проблема и с ReadFile
Invoke GetCursorPos,Позиция курсора, сюда переменная нужна или ???.
Invoke EnableMenuItem,дескриптор меню де его взять ,IDB_EXIT,MF_DISABLE
Страницы:
406
26 сентября 2006 года
vitaly2003s
481 / / 27.07.2004
Насчет статика использую следующюю функцию:


SetWindowLong(hwndt_static,GWL_STYLE,SS_CENTER);
или
SetWindowLong(hwndt_static,GWL_STYLE,SS_RIGHT);
или
SetWindowLong(hwndt_static,GWL_STYLE,SS_LEFT);
6.6K
18 октября 2006 года
Scaiman
126 / / 25.07.2006
Подскажите как можно измерить за сколько тактов выполнена программа.
398
18 октября 2006 года
Alexandoros
630 / / 21.10.2005
[QUOTE=Scaiman]Подскажите как можно разместить файл в памяти размером в 60 mb или более только так чтобы неписать вроде этого "Bufer db 500 dup (?)" и этого тоже => CreateFileMapping
Заранее спасибо[/QUOTE]

man VirtualAlloc/HeapAlloc
398
18 октября 2006 года
Alexandoros
630 / / 21.10.2005
[QUOTE=Scaiman]Подскажите как можно измерить за сколько тактов выполнена программа.[/QUOTE]
RDTSC
354
18 октября 2006 года
ШпиЁн
468 / / 19.02.2006
Вот, например, как с помощью rdtsc можно измерить частоту процессора
Код:
#include <stdio.h>
#include <Windows.h>

float GetIPS(const unsigned int ms)
{
    __int64 tStart, tEnd;
    __asm
    {
        rdtsc
        mov dword ptr [tStart], eax
        mov dword ptr [tStart+4], edx
    }

    Sleep(ms);

    __asm
    {
        rdtsc
        mov dword ptr [tEnd], eax
        mov dword ptr [tEnd+4], edx
    }

    return (float)(tEnd - tStart)*1000.0f/ms;

}

int main()
{
   
    for (unsigned int i = 200; i< 2001; i+=200)
      printf(" Current CPU speed is ~%5.2f mhz (%d ms estimation)\n", GetIPS(i)/1.0e6f, i);
    printf("Press <Enter> to exit...");
    char ch = getchar();
    return 0;
}

Ясное дело, чо здесь два раза вызывается rdtsc - за какой-то фиксированный промежуток времени получим столько-то тактов, далее нужно поделить такты на секудны, мы получим частоту...
6.6K
18 октября 2006 года
Scaiman
126 / / 25.07.2006
Подскажите где можно скачать link.exe а то он уменя неработает точнее работает но не весь список из def обрабатывает тоесть только первую а остальные нет.
354
18 октября 2006 года
ШпиЁн
468 / / 19.02.2006
[QUOTE=Scaiman]Подскажите где можно скачать link.exe а то он уменя неработает точнее работает но не весь список из def обрабатывает тоесть только первую а остальные нет.[/QUOTE]

Линкер всегда работает корректно - ошибка где-то у тебя :о)
6.6K
18 октября 2006 года
Scaiman
126 / / 25.07.2006
Спасибо за пример
нет некак нет я меняю на более раннюю версию и всё нормально
354
18 октября 2006 года
ШпиЁн
468 / / 19.02.2006
Как я понимаю, ты собираешь библиотеку DLL, там ведь нужно писать нечто типа:
LIBRARY MyDll
EXPORTS

Func1
Func2

Но я чаще экспорт делаю так:
__declspec(dllexport) void __cdecl Function1(void);
6.6K
18 октября 2006 года
Scaiman
126 / / 25.07.2006
Да именно так но Func2 почемуто поске компиляции через GetProcAddress недаступна а если компелировать link.exe более поздней версии то всё отлично наверно какойто лаг.
Где на Microsoft скачать link.exe никак немагу найти.
354
18 октября 2006 года
ШпиЁн
468 / / 19.02.2006
Да не может этого быть, ты вероятно с прототипами что-то напутал - скинь проект, я посмотрю. Подсоедини к проекту lib от своей библиоткеи - так даже проще будет. В общем, скинь код сюда, или весь проект. что-то не так, link.exe не виноват, это точно! :о)
284
19 октября 2006 года
michael_is_98
587 / / 25.02.2005
Что-то здесь так много простых вопросов...
Напоминает работу над проектом, когда поставлена цель, но нет ни опыта, ни соответств. знаний. Начинать видимо нужно с установки более-менее современного компилятора (рекомендую VS2003 - он же VS7.1) и чтения соответствующей литературы.
MASM - не очень хорошая вещь для начинающего программиста.
Пытался в свое время написать приложение типа HELLO, WORLD! на ASSEMBLER'е, получилось, заработало. Да, маленький размер, но увы. Когда стал развивать приложение, понял что на MASM работать тяжело - отсутствуют многие функции, которые есть в языке Си++. Нужно либо самому изобретать велосипед, или брать библиотеки заточенные для MASM (если такие вообще есть) и их изучать. Сложность, с которой я столкнулся при использовании MASM - это преобразование целого числа в строку.

По теории программирования есть достойные книги и в части WINAPI большинство из них написаны с прицелом на Си++. На Си++ разрабатываются крупные проекты, на Си++ базируются современные технологии программирования, на Си++ можно добиться (при условии следования опред. правилам) переносимости программ, наконец, на Си++ можно использовать ассемблерные вставки для кодирования наиболее критичных участков программ.
Использование лишь ASSEMBLER'а всегда должно быть обусловлено весткими причинами.

P.S. Могу помочь с литературой и VS2003, кому интересно.
6.6K
19 октября 2006 года
Scaiman
126 / / 25.07.2006
Вот полный пример dll из проги. Вообще проблема решена только надо link другой версии.
Использование лишь ASSEMBLER'а всегда должно быть обусловлено весткими причинами-я его изучаю для ознакомления так как лазить в чужом коде тоже интересно. Потаму и изучаю, а писать на С++ удобнее вамного раз даже небуду спорить. Но ASM знать тоже надо.
334
19 октября 2006 года
HexEdit
809 / / 27.07.2006
[QUOTE=Scaiman]
Использование лишь ASSEMBLER'а всегда должно быть обусловлено весткими причинами
[/QUOTE]
Да ладнаа..... ASSEMBLER - это хорошо. C++ конечно удобнее, но вот тока вопрос: лучше ли???
284
20 октября 2006 года
michael_is_98
587 / / 25.02.2005
Смотря для какой задачи.
В ASSEMBLER'е нет ничего сложного, он проще любого высокоуровнего ЯП.

Более-менее крупные проекты на нем написать сложно (и никто это не делает), к тому же программа на нем непереносима на другие платформы.
334
20 октября 2006 года
HexEdit
809 / / 27.07.2006
[QUOTE=michael_is_98]Смотря для какой задачи.
В ASSEMBLER'е нет ничего сложного, он проще любого высокоуровнего ЯП.

Более-менее крупные проекты на нем написать сложно (и никто это не делает), к тому же программа на нем непереносима на другие платформы.[/QUOTE]
Конечно верно, но согласись что когда пишешь на чистом АСМе, программы весят меньше и быстрее выполняются.... правда при правильном построении алгоритма...
284
20 октября 2006 года
michael_is_98
587 / / 25.02.2005
Да, согласен. Но стоит ли игра свеч - при современных объемах жестких дисках и быстродействии процессоров.
Крупный проект на чистом АСМ не построить - а вот ассемблерные вставки - это да. В Дельфийском VCL используются. Можно их использовать и в C++.
257
20 октября 2006 года
kosfiz
1.6K / / 18.09.2005
[quote=michael_is_98]Крупный проект на чистом АСМ не построить[/quote]
это кто тебе сказал? если есть желание и знания, то можно и большой проект создать, если я не ошибаюсь, то таких проектов достаточно.
240
20 октября 2006 года
aks
2.5K / / 14.07.2006
[QUOTE=kosfiz] если я не ошибаюсь, то таких проектов достаточно.[/QUOTE]
А примерчик можно хоть одного? )
257
20 октября 2006 года
kosfiz
1.6K / / 18.09.2005
[quote=aks][/quote]
вот тебе примерчики:
Fasm - написан на ... фасме.
MenuetOS - цитата:"MenuetOS is a hobby Operating System for the PC written entirely in 32bit assembly language"
где-то видел файловый менеджер наподобие Total Commander'а хотя может это и не относится к большим проектам, видел виртуальную машину для windows не помню как называется, правда, это уже давно было, есть еще игрушка kkrieger. можно в принципе и еще назвать. хотя конечно прог написанных на си и дельфи намного больше
6.6K
23 октября 2006 года
Scaiman
126 / / 25.07.2006
Извините этот вапрос никак неотносится к програмированию и спрасить неукого как только на форуме.
Просто я незнаю что и делать. Раньше винда была установлена на D: а теперь на C: так вот по пути D:\WINDOWS\Temp\hsperfdata_SYSTEM\1796 <=файл мне его никакими путями неудалить и не открыть весит он
16384 байт. Памогите пожайлуста он мне просто как кость в горле.
Заранее благодарен
257
23 октября 2006 года
kosfiz
1.6K / / 18.09.2005
если файл, то delete doctor(http://www.diskcleaners.com/files/deletedr.exe) тебе поможет.
6.6K
25 октября 2006 года
Scaiman
126 / / 25.07.2006
Непамогло, неодин из методов неберёт.
257
26 октября 2006 года
kosfiz
1.6K / / 18.09.2005
попробуй еще CopyLock.
7
28 октября 2006 года
@pixo $oft
3.4K / / 20.09.2006
Кстати,насчёт манифестов.Для проги на Визуальном Васике 6.0 при наличии манифеста прога при старте говорит что-то типа "класс не зарегистрирован" или в этом роде.Никто не подскажет текст правильного манифеста?И почему при изменении регистра символов сразу ошибка в разборе?Не могли создать нормальный разборщик?
6.6K
28 октября 2006 года
Scaiman
126 / / 25.07.2006
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="3.5.0.1442"
processorArchitecture="X86"
name="Название проги"
type="win32"
/>
<description>тоже название</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>

можно подругому если программа называется 1.exe то назави манифест так 1.exe.manifest (манифест должен лежать в каталоге с программой)
7
31 октября 2006 года
@pixo $oft
3.4K / / 20.09.2006
Попробуй с дискетки загрузись(или ещё с ч.-л. загрузочного) и скопируй его куда-нибудь.Потом проанализируешь:)
6.6K
31 октября 2006 года
Scaiman
126 / / 25.07.2006
[QUOTE=@pixo $oft]Попробуй с дискетки загрузись(или ещё с ч.-л. загрузочного) и скопируй его куда-нибудь.Потом проанализируешь:)[/QUOTE]
Непонел ачёмты.
7
01 ноября 2006 года
@pixo $oft
3.4K / / 20.09.2006
Загрузись с дискетки и удали этот злополучный .tmp 16384 байт
6.6K
06 ноября 2006 года
Scaiman
126 / / 25.07.2006
Подскажите где можно взять заголовачные файлы(*.h)и lib а то я купил Visual C++ 2005 Express Edition а то там нету даже Windows.h
Пожалуйста помогите!
240
06 ноября 2006 года
aks
2.5K / / 14.07.2006
Скачай Platform SDK с сайта Microsoft. Он бесплатный тоже.
6.6K
06 ноября 2006 года
Scaiman
126 / / 25.07.2006
Ябы скачал только он весит 400 метров и у меня скорость скачки 5 кб/с это просто будет бакнротство. Если бы только h и lib найтибы где нибуть найти.
240
06 ноября 2006 года
aks
2.5K / / 14.07.2006
Хе, так ты не качай все ненужное добро. Там же выбрать можно что качать )) И будет несколько мегабайт всего )
6.6K
06 ноября 2006 года
Scaiman
126 / / 25.07.2006
А попадробнее можно " Там же выбрать можно что качать " именно где или ссылку ато я щас искал и где выбиратать ненашол.
354
06 ноября 2006 года
ШпиЁн
468 / / 19.02.2006
хм... рецепт счастья: берем рублей 80-100(у нас столько это добро стоит), идем в какую-нибудь дыру где диски продают, и берем VS2002 или VS2003. там ВСЕ и СРАЗУ есть... :о))) незачем гнаться за последними новинками, можно и на VC++ 6.0 такооое вытворять :о)))
PS. у меня VS2002 стоит, и я рад, и счастлив :о)))
6.6K
06 ноября 2006 года
Scaiman
126 / / 25.07.2006
Да негнался я за новьём просто ничего другова нету унас в продаже.
а сколько они весят в полном объёме :)
354
07 ноября 2006 года
ШпиЁн
468 / / 19.02.2006
ты сам усложняешь себе жизнь... найдешь эту пару файлов - они попросят еще пару файлов, и т.д........
6.6K
07 ноября 2006 года
Scaiman
126 / / 25.07.2006
Извените за наглость. Если кто может скиньте в архиве на почту файлы h и lib
6.6K
07 ноября 2006 года
Scaiman
126 / / 25.07.2006
Да ты наверно прав придётся качать Platform SDK. Повесят меня когда счёт придёт за инет.
6.6K
08 ноября 2006 года
Scaiman
126 / / 25.07.2006
Подскажите а загаловачные файлы от Borland C++ Builder Enterprise 6.0 подайдут для Visual C++ 2005. Только неговарите что вапрос ту..й знаю.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог