возможно эти библиотеки еще делались на 98 винде и положим какая то идея была совместимости или инклудов не было еще, поэтому в кернеле32 есть
lstrlen
lstrlenA
lstrlew
первые две одно и тоже. mapi эту 32, может вообще кто то левый делал и кривой DEF составил. просто из за небольшого количества кривых либов, нужно придумывать алгоритм проверок, который будет потом тормозить на 99% либов.
а никто не подскажет как DEF файл с ординалами сделать? по нумеру то быстрее функцию вызывать чем по имени. это мне для своих дллок интересно
а в кернеле этом вообще ординалов нету
AZJIO Цитата: Ты MASM по учёбе/работе изучаешь?
нет. просто так, для дома для семьи. я других языков не знаю. в школе учил бейсик для Hewlett Packard, на Turbo сам программировал. потом операторы начал использовать прямые, потом команды для процессора, потом вставку сделал ассемблерную, а потом бейсик стал не нужен.
а после бейсика я Си понять не могу в упор. три раза пробовал начинать книжку читать и дуб дубом ниче в голову не лезет. три дня убил на то чтоб понять что за объекты такие, когда понял плюнул...
это как паскаль был и бейсик. вроде одно и тоже, а друг друга не понимали никогда. вот Си паскале видный язык. я последний год был когда на бейсике учили, следующие уже на паскале все. фортран еще был семестр в вузе - ну он на бейсик похож, я на первом занятии программу написал и больше не ходил. так же с ассемблером - никаких сложностей. никаких книжек не читал, просто пишу да и все со справочником под рукой
под виндой никакой разницы нет дельфи, си, ассемблер. паутину плетешь из апи функций. на асме примеров в инете мало постоянно использую коды на дельфи и си как примеры. пустячные функции расписываешь сам - на си тоже вставки делают ассемблерные. единственная серьезная разница - вещественные числа, но на масме всяких библиотек куча для fpu и прочего
Добавлено: [more].386
.model flat, stdcall
option casemap :none
include \MASM32\INCLUDE\windows.inc
include \MASM32\INCLUDE\user32.inc
include \MASM32\INCLUDE\kernel32.inc
includelib \MASM32\LIB\user32.lib
includelib \MASM32\LIB\kernel32.lib
include \MASM32\INCLUDE\fpu.inc
includelib \MASM32\LIB\fpu.lib
.data
mestitle db "fpu",0
valueA db '123.456',0
valueB db '456.321',0
.data?
buffer db 512 dup(?)
value1 real10 ?
value2 real10 ?
.code
start:
invoke FpuAtoFL,addr valueA,addr value1,DEST_MEM
invoke FpuAtoFL,addr valueB,addr value2,DEST_MEM
invoke FpuAdd,addr value1,addr value2,addr value1,SRC1_REAL OR SRC2_REAL OR DEST_MEM
invoke FpuFLtoA,addr value1,03h,addr buffer,SRC1_REAL OR STR_REG
invoke MessageBox,0,addr buffer,addr mestitle,MB_ICONASTERISK
invoke ExitProcess,0
end start[/more]
вот пример макрофункций готовых. я особой разницы не вижу, один раз написать конвертер строка-real10 потом все время им пользоваться, все равно с сопроцессором сидеть тупить и пока опыта набираешься щелкаешь мелкие задачки - вот у тебя и накопятся свои коды: длина строки, строка в число, число в строку... и вообще сейчас смысл на SSE напирать, а то AVX уже давно пора начинать изучать
http://rghost.ru/43806034 вот усложнил немного, от Си ничем не отличается только синтаксисом. конечно я бы строку собрал без апи - на каждый вызов апи уходит минимум 300-500 тактов, даже если она ничего не делает. плюс они универсальные, в них куча проверок, а реально от них обычно и половины не надо, так что сотни тактов заменяются на единицы-десятки частенько
http://rghost.ru/43806100