Знающие, помогите... Мне нужно создать Dll с использованием com технологий. использование COM в fasm очень легкое, а вот создание? Помогите примером... Заранее спасибо
Примером? На масме это 15 кб кода и с 50 кб инклудов, хоший будет пример. А почему тема в бегиннерсах? Это и не каждый адвансед напишет )
А я в Fasm хочу - больно это красиво получается... И вообще решил на него переходить А куда еще писать...
для начала поищи на форуме фасма, может уже есть готовое, если нет, бери код для масма (есть в пакете масм32) и творчески переделывай, заодно изучишь как оно все работает, при этом можно еще запастись книгой типа Inside OLE 2, где про потроха ком рассказывается. в WIN32, очевидно, надо было, но уже поздно, модераторы переместят если надо будет
А насчет примера: - создание структуры vtable - вывод из создателя... Я делал так: Код (Text): interface IAniThing,\ AniProc ... proc RealAniProc ... endp proc AniCreator invoke LocalAlloc, LMEM_FIXED, ... mov [eax+IAniThing#.#AniProc] endp Говорит - ошибка...
Код (Text): mov [eax+IAniThing#.#AniProc] попытка переписать cominvk или comcall из стандартных инклюдов?
Sergio_Begin Почитай лучше статьи о СОМ, особенно о том, как он реализуется на чистом си. Там весьма близко к асму.
COM DLL-ка на фасме. Только не регистрируется сама (нужно вручную). Для теста я поместил контрол на HTML страничку. Также выкладываю мои inc файлы (не пользуюсь стандартным com интерфейсом фасма - невдалый он какой-то).
Вы не поняли.... Почему в CMyApp.dll нет экспорта DllGetClassObject, DllCanUnloadNow,DllRegisterServer,DllUnregisterServer с ними удобнее!
... вопрос не в тему А можно ли на FASM реализовать собственный формат файлов? (там же есть PE GUI, PE Console и тд...); Только не прямым кодом типа Код (Text): PUSH CS POP DS MOV DX,000E MOV AH,09 INT 21 MOV AX,4C01 INT 21 PUSH SP DB 68 DB 69 JNB 0033 JO 0087 DB 6F DB 67 JB 007A DB 6D AND [BP+DI+61],AH DB 6E DB 6E DB 6F
Потому что не доделал! Что тут непонятного? Выкладываю свои попытки собрать фасмом VxD. (Нерабочий вариант, рабочего пока нет).