#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;
}
Вопрос по 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
SetWindowLong(hwndt_static,GWL_STYLE,SS_CENTER);
или
SetWindowLong(hwndt_static,GWL_STYLE,SS_RIGHT);
или
SetWindowLong(hwndt_static,GWL_STYLE,SS_LEFT);
Подскажите как можно измерить за сколько тактов выполнена программа.
Заранее спасибо[/QUOTE]
man VirtualAlloc/HeapAlloc
RDTSC
Код:
Ясное дело, чо здесь два раза вызывается rdtsc - за какой-то фиксированный промежуток времени получим столько-то тактов, далее нужно поделить такты на секудны, мы получим частоту...
Подскажите где можно скачать link.exe а то он уменя неработает точнее работает но не весь список из def обрабатывает тоесть только первую а остальные нет.
Линкер всегда работает корректно - ошибка где-то у тебя :о)
нет некак нет я меняю на более раннюю версию и всё нормально
LIBRARY MyDll
EXPORTS
Func1
Func2
Но я чаще экспорт делаю так:
__declspec(dllexport) void __cdecl Function1(void);
Где на Microsoft скачать link.exe никак немагу найти.
Да не может этого быть, ты вероятно с прототипами что-то напутал - скинь проект, я посмотрю. Подсоедини к проекту lib от своей библиоткеи - так даже проще будет. В общем, скинь код сюда, или весь проект. что-то не так, link.exe не виноват, это точно! :о)
Напоминает работу над проектом, когда поставлена цель, но нет ни опыта, ни соответств. знаний. Начинать видимо нужно с установки более-менее современного компилятора (рекомендую VS2003 - он же VS7.1) и чтения соответствующей литературы.
MASM - не очень хорошая вещь для начинающего программиста.
Пытался в свое время написать приложение типа HELLO, WORLD! на ASSEMBLER'е, получилось, заработало. Да, маленький размер, но увы. Когда стал развивать приложение, понял что на MASM работать тяжело - отсутствуют многие функции, которые есть в языке Си++. Нужно либо самому изобретать велосипед, или брать библиотеки заточенные для MASM (если такие вообще есть) и их изучать. Сложность, с которой я столкнулся при использовании MASM - это преобразование целого числа в строку.
По теории программирования есть достойные книги и в части WINAPI большинство из них написаны с прицелом на Си++. На Си++ разрабатываются крупные проекты, на Си++ базируются современные технологии программирования, на Си++ можно добиться (при условии следования опред. правилам) переносимости программ, наконец, на Си++ можно использовать ассемблерные вставки для кодирования наиболее критичных участков программ.
Использование лишь ASSEMBLER'а всегда должно быть обусловлено весткими причинами.
P.S. Могу помочь с литературой и VS2003, кому интересно.
Использование лишь ASSEMBLER'а всегда должно быть обусловлено весткими причинами-я его изучаю для ознакомления так как лазить в чужом коде тоже интересно. Потаму и изучаю, а писать на С++ удобнее вамного раз даже небуду спорить. Но ASM знать тоже надо.
Использование лишь ASSEMBLER'а всегда должно быть обусловлено весткими причинами
[/QUOTE]
Да ладнаа..... ASSEMBLER - это хорошо. C++ конечно удобнее, но вот тока вопрос: лучше ли???
В ASSEMBLER'е нет ничего сложного, он проще любого высокоуровнего ЯП.
Более-менее крупные проекты на нем написать сложно (и никто это не делает), к тому же программа на нем непереносима на другие платформы.
В ASSEMBLER'е нет ничего сложного, он проще любого высокоуровнего ЯП.
Более-менее крупные проекты на нем написать сложно (и никто это не делает), к тому же программа на нем непереносима на другие платформы.[/QUOTE]
Конечно верно, но согласись что когда пишешь на чистом АСМе, программы весят меньше и быстрее выполняются.... правда при правильном построении алгоритма...
Крупный проект на чистом АСМ не построить - а вот ассемблерные вставки - это да. В Дельфийском VCL используются. Можно их использовать и в C++.
это кто тебе сказал? если есть желание и знания, то можно и большой проект создать, если я не ошибаюсь, то таких проектов достаточно.
А примерчик можно хоть одного? )
вот тебе примерчики:
Fasm - написан на ... фасме.
MenuetOS - цитата:"MenuetOS is a hobby Operating System for the PC written entirely in 32bit assembly language"
где-то видел файловый менеджер наподобие Total Commander'а хотя может это и не относится к большим проектам, видел виртуальную машину для windows не помню как называется, правда, это уже давно было, есть еще игрушка kkrieger. можно в принципе и еще назвать. хотя конечно прог написанных на си и дельфи намного больше
Просто я незнаю что и делать. Раньше винда была установлена на D: а теперь на C: так вот по пути D:\WINDOWS\Temp\hsperfdata_SYSTEM\1796 <=файл мне его никакими путями неудалить и не открыть весит он
16384 байт. Памогите пожайлуста он мне просто как кость в горле.
Заранее благодарен
http://www.diskcleaners.com/files/deletedr.exe) тебе поможет.
если файл, то delete doctor(
Непамогло, неодин из методов неберёт.
попробуй еще CopyLock.
Кстати,насчёт манифестов.Для проги на Визуальном Васике 6.0 при наличии манифеста прога при старте говорит что-то типа "класс не зарегистрирован" или в этом роде.Никто не подскажет текст правильного манифеста?И почему при изменении регистра символов сразу ошибка в разборе?Не могли создать нормальный разборщик?
<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 (манифест должен лежать в каталоге с программой)
Попробуй с дискетки загрузись(или ещё с ч.-л. загрузочного) и скопируй его куда-нибудь.Потом проанализируешь:)
Непонел ачёмты.
Загрузись с дискетки и удали этот злополучный .tmp 16384 байт
Пожалуйста помогите!
Скачай Platform SDK с сайта Microsoft. Он бесплатный тоже.
Ябы скачал только он весит 400 метров и у меня скорость скачки 5 кб/с это просто будет бакнротство. Если бы только h и lib найтибы где нибуть найти.
Хе, так ты не качай все ненужное добро. Там же выбрать можно что качать )) И будет несколько мегабайт всего )
А попадробнее можно " Там же выбрать можно что качать " именно где или ссылку ато я щас искал и где выбиратать ненашол.
PS. у меня VS2002 стоит, и я рад, и счастлив :о)))
а сколько они весят в полном объёме :)
ты сам усложняешь себе жизнь... найдешь эту пару файлов - они попросят еще пару файлов, и т.д........
Извените за наглость. Если кто может скиньте в архиве на почту файлы h и lib
Да ты наверно прав придётся качать Platform SDK. Повесят меня когда счёт придёт за инет.
Подскажите а загаловачные файлы от Borland C++ Builder Enterprise 6.0 подайдут для Visual C++ 2005. Только неговарите что вапрос ту..й знаю.