вот пример на си++: typedef int (__stdcall* PFunc)(int param1, int param2); PFunc pFunc = GetProcAddress(hMod, "Func"); int res = pFunc(100, 200);...
найти метод по таблице импорта dll... смотри LoadLibrary + GetProcAddress...
согласен с этим...
тут нужен асм... на сях сложно такое сделать... релоки ты не запихнешь в одну секцию, их можно отключить... но тогда нужно, чтобы все переходы,...
вообще если подумать о загрузке без выравнивания - задача интересная... тут надо хорошо знать как генерирует код компилятор, что собирает dll......
вас носом ткнуть? PointerToRawData - смещение секции от начала файла VirtualAddress - смещение секции от базового адреса загрузки в виртуальной...
[img]
я думаю только в одном случае... когда выравнивание секций в файле совпадает с выравниванием виртуальной памяти...
каждая секция должна быть выравнена на размер страницы... нет никакой разницы... есть много факторов по которым можно определить, что этот блок...
подкиньте пожалуйста нормальный кроссплатформенный хедер ntdll.h... нужны правильные системные структуры под х86 и х64 без заморочек с...
прекрасно собирается и работает с любой функцией стандартного типа... и для си и для плюсов... да и какая кому разница? я так и не понял......
в си тоже самое... еще раз говорю, проблема не в компиляторе, проблема - в голове...
я знаю... и касается это не только функции main... если нет return, то возвращается 0 (xor eax, eax и затем ret)... вроде бы для всех стандартных...
#include <stdio.h> int main(int argc, char **argv) { printf("no return!? oh my god!!! o_O \n"); } MinGW - никаких ошибок, а это фактически...
значит по тем правилам, которые ты придумал... ))) ЗЫ учи язык D!
позорище... [img]
радуйся... в чем проблема твоя? поставь точку останова и посмотри в дисассемблере... или поставь в настройках проекта выводить асм-листинг...
посмотрите, как устроены макросы, и подумайте сами...
да...
Имена участников (разделяйте запятой).