Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.141.166.242] |
|
Страницы: (3) 1 [2] 3 все ( Перейти к последнему сообщению ) |
Сообщ.
#16
,
|
|
|
Цитата SCINER, Я чето непонял... там асм в bat файле??? ну, и я тож ни че не понял |
Сообщ.
#17
,
|
|
|
Цитата А пример приведеный выше разве не является примером использования dll с асмом? я просто не смог вырезать вункцию из скомпелированной dll'ки и вставить ее в .exe! Я вообще-то и не понял даже где там асм... #_CPP [DLL: CPP_DLL] #include <windows.h> #include <string.h> #include <ole2.h> BYTE _stdcall TestByte( BYTE a, LPBYTE b ) { *b = a + a; return( *b + a ); } #End _CPP Ето что-ли? Функция выглядела бы: Int _stdcall TestByte( BYTE a, LPBYTE b ) { int c; __asm{ mov al,a mov bl,b add al,bl moc c,eax } return (c); } #End _CPP Понапридумывают... |
Сообщ.
#18
,
|
|
|
але! ты читать у меешь??
Цитата Вот что касается асма, то мое маленькое достижение поможет писать на асме в среде Visual Basic т.к. всем известно что в С++ встроен асм.) Где там SCINER? Ты хотел компилить только асемовские вставки?асем то компилить мона - это без вопросов, вот только как это пристрастить к VB? смутно представляю раскажи по подробней о своей идеии |
Сообщ.
#19
,
|
|
|
Цитата раскажи по подробней о своей идеии у него может и идей нету |
Сообщ.
#20
,
|
|
|
Цитата Andrey_Kun @ 16.11.04, 15:24 SCINER, Я чето непонял... там асм в bat файле??? Это ниже чем асм. Это самое низкоуровневое программирование. Ниже некуда. Это машинные коды! Добавлено Цитата miksayer @ 16.11.04, 18:36 Цитата раскажи по подробней о своей идеии у него может и идей нету Идея есть. 1. Линкер. Ему указывают из каких файлов собрать экзешку. Это можно увидеть, если перехватить его командную строку. Она выглядит примерно так: \link.exe "C:\My Downloads\Hide_From\icanhide\icanhide.OBJ" /ENTRY:__vbaS /OUT:"C:\My Downloads\Hide_From\icanhide\icanhide.exe" /BASE:0x400000 /SUBSYSTEM:WINDOWS,4.0 /VERSION:1.0 /INCREMENTAL:NO /OPT:REF /MERGE:.rdata=.text /IGNORE:4078 /OPT:NOWIN98 "C:\Program Files\SCINSpy\SSButton.OBJ" "C:\Program Files\SCINSpy\SSTabStrip.OBJ" "C:\Program Files\SCINSpy\modPrinter.OBJ" "C:\Program Files\SCINSpy\SSListViewReport.OBJ" "C:\Program Files\SCINSpy\modLogBase.OBJ" "C:\Program Files\SCINSpy\SCINSpy.OBJ" "C:\Program Files\Microsoft Visual Studio\VB98\VBAEXE6.LIB" /ENTRY:__vbaS /OUT:"C:\Program Files\SCINSpy\SCINSpy.exe" /BASE:0x400000 /SUBSYSTEM:WINDOWS,4.0 /VERSION:6.1 /INCREMENTAL:NO /OPT:REF /MERGE:.rdata=.text /IGNORE:4078 /OPT:NOWIN98 Т.е. туча файлов с расширением *.OBJ А что будет если один из них подменить своим. Но скомпиленным PB ?? Если конечно PB создает OBJ файлы. |
Сообщ.
#21
,
|
|
|
я тут начал разбор полетов с компилятором c2.exe
вот, что пока из этого выходит: Сперва ОБЯЗАТЕЛЬНО прочтите Readme! Прикреплённый файлvb2asm.zip (1.51 Кбайт, скачиваний: 163) |
Сообщ.
#22
,
|
|
|
Цитата BYTE _stdcall TestByte( BYTE a, LPBYTE b ) maxim84_, у тебя эта ф-я экспортировалась ?? не верю... вот так должно экспортироваться extern "C" __dllspec(dllexport) __stdcall TestByte( BYTE a, LPBYTE b ) И действительно, если кому то нужны вставки на асме пусть пишет длл на С, не очень удобно конечно, не не менее, чем писать вставки на асме... А вообще, чего вам сдался этот асм, это ж отстой, только для понта разве что... реального применения практически нет... рельно полезных асм вставок единицы, и все они уже написанны до нас... |
Сообщ.
#23
,
|
|
|
Цитата рельно полезных асм вставок единицы, и все они уже написанны до нас... Вот если бы они ещё волялись всюду |
Сообщ.
#24
,
|
|
|
Цитата А вообще, чего вам сдался этот асм, это ж отстой, только для понта разве что... реального применения практически нет... рельно полезных асм вставок единицы, и все они уже написанны до нас... а, например, узнать тактовую частоту процессора и вообще можно много чего узнать |
Сообщ.
#25
,
|
|
|
Цитата а, например, узнать тактовую частоту процессора и вообще можно много чего узнать Ага, много всего, только это по большому счёту бесполезная информация... Асмовые вставки, насколько я знаю в основном используют в графике... Цитата Вот если бы они ещё волялись всюду __inline void MyFtoL(int *i, float f ) { __asm fld f; __asm mov edx, I __asm fistp [edx]; } /********************************************************************* ulSqrt.cpp Copyright (C) 1999, 2000 NVIDIA Corporation This file is provided without support, instruction, or implied warranty of any kind. NVIDIA makes no guarantee of its fitness for a particular purpose and is not liable under any circumstances for any damages or loss whatsoever arising from the use or inability to use this file or items derived from it. Comments: *********************************************************************/ #include <stdio.h> #include <math.h> #include <windows.h> static float _0_47 = 0.47f; static float _1_47 = 1.47f; float __fastcall ulrsqrt(float x) { DWORD y; float r; _asm { mov eax, 07F000000h+03F800000h // (ONE_AS_INTEGER<<1) + ONE_AS_INTEGER sub eax, x sar eax, 1 mov y, eax // y fld _0_47 // 0.47 fmul DWORD PTR x // x*0.47 fld DWORD PTR y fld st(0) // y y x*0.47 fmul st(0), st(1) // y*y y x*0.47 fld _1_47 // 1.47 y*y y x*0.47 fxch st(3) // x*0.47 y*y y 1.47 fmulp st(1), st(0) // x*0.47*y*y y 1.47 fsubp st(2), st(0) // y 1.47-x*0.47*y*y fmulp st(1), st(0) // result fstp y and y, 07FFFFFFFh } r = *(float *)&y; // optional r = (3.0f - x * (r * r)) * r * 0.5f; // remove for low accuracy return r; } /* sqrt(x) = x / sqrt(x) */ float __fastcall ulsqrt(float x) { return x * ulrsqrt(x); } inline unsigned __int64 GetCycleCount(void) { _asm _emit 0x0F _asm _emit 0x31 } аналог GetTickCount, но гораздо точнее ещё где то было вообще если хорошенько поискать... |
Сообщ.
#26
,
|
|
|
Цитата Асмовые вставки, насколько я знаю в основном используют в графике... Ну... я бы несказал, что в графике... Чаще всего в вирях |
Сообщ.
#27
,
|
|
|
SmK, да экспортировалось!! и все работет могу dll'ку выложить.
И не надо обсерать асем, асем это - "основа". я вот что хочу сказть по поводу асма, если не умеешь на нем писать как нужно, то и будет отстоем:) да листинг сдоровенный. я считаю лючше интегрировать уж стразу C++, тогда больше толку будет. но это мое мнение. Добавлено слушай Sciner, а зачем Цитата цитата из Readme!!!.txt ASM-код всех модулей, классов, контролов и форм проекта |
Сообщ.
#28
,
|
|
|
незнаю
|
Сообщ.
#29
,
|
|
|
Цитата maxim84_ @ 17.11.04, 19:38 SmK, да экспортировалось!! и все работет могу dll'ку выложить. И не надо обсерать асем, асем это - "основа". я вот что хочу сказть по поводу асма, если не умеешь на нем писать как нужно, то и будет отстоем:) да листинг сдоровенный. я считаю лючше интегрировать уж стразу C++, тогда больше толку будет. но это мое мнение. Добавлено слушай Sciner, а зачем Цитата цитата из Readme!!!.txt ASM-код всех модулей, классов, контролов и форм проекта например, чтобы скомпилировать код на асме. Прога тогда msvbvm60.dll е будет требовать, наверное... |
Сообщ.
#30
,
|
|
|
miksayer, не много не понел
Ну да, будет, конечно поскольку вставки в VB проекте!! или ты про что то другое? SCINER, а зачем тогда парился? просто так? ты что то про PB говорил, не почается?мне кажеться просто стоит скомпелировать асемовским компилем и вырезать нужную вставку и вставить там где эта вставка на VB. Другой вопрос как это сделать? можно выризать диапазон адресов. я тык пытался, видно не фига в адрес не попал. нужно работать по принцепу вирей. где они свой код вписывают в нужные адриса. |