Занялся изучением создания драйверов и столкнулся с неприятной вещью переписывание структур для Fasma. Windbg даёт возможность получить необходимые структуры, но структуры очень большие и переписывать их замахаешься. Но я же хочу стать программистом, а значит должен автоматизировать рутину по возможности. По началу думал, что тут нечего сложного и за недельку я справлюсь, о боже как я ошибся в своих возможностях. За то время пока я писал и переписывал эту программу я бы уже смог 20 раз переписать все имеющиеся структуры в Windows. Но упорство и труд всё перетрут.... хотя не уверен что эта программа пригодится хоть кому-нибудь. Исходники без Sublime смысла смотреть нет, утоните в количестве строк. Программа написана плохо, мне просто еще не доводилось писать столь многострочные программы, разобраться в ней проблематично даже для меня. Внутри есть образец Template.txt в нем образец структуры с которым конвертер справляется. Проверяйте все строки после конвертера, ошибки конвертирования весьма вероятны. Может конвертировать только одну структуру за раз.
Ты пошел по какому-то уж слишком замороченному пути. Обычно берут хидеры от студии и конвертят их, вон например https://github.com/SunsetQuest/CppHeaderToCSharpConverter C++ в С# на регулярках. Я думаю, можно даже присобачиться к студии через Ole (автокомплит там есть, значит скорей всего можно как-то через оле декларацию структур доставать) и брать интересующие структуры прямо оттуда. Ну и язык для реализации один из самых неподходящих выбрал, vbs бы это проделал проще и не в 2.6к строк.
Похоже я не очень внял вашим советам и переписал конвертер на С++ в рамках изучения этого языка.(строк получилось еще больше) Сейчас он гораздо лучше справляется с переводом структур(хоть и намного медленнее), но всё же далёк от идеального исполнения. В частности при переводе структуры : Код (Text): DISPATCHER_HEADER +0x000 Lock : Int4B +0x000 LockNV : Int4B +0x000 Type : UChar +0x001 Signalling : UChar +0x002 Size : UChar +0x003 Reserved1 : UChar +0x000 TimerType : UChar переводит её с ошибкой: Код (Text): struct DISPATCHER_HEADER union struct union Lock dd ?; 0x0 LockNV dd ?; 0x0 Type db ?; 0x0 ends Signalling db ?; 0x1 Size db ?; 0x2 Reserved1 db ?; 0x3 ends ..... а надо так: Код (Text): struct DISPATCHER_HEADER union union union Lock dd ?; 0x0 LockNV dd ?; 0x0 ends struct Type db ?; 0x0 Signalling db ?; 0x1 Size db ?; 0x2 Reserved1 db ?; 0x3 ends ends ........ Вообще пользоваться надо с осторожностью, строку в которой значение байт неопределено подсвечивает, а которую не разобрал, просто стирает. Не знаю как правильно выкладывать исходный код, исходник занимает 600мб что он себе там накачал даже подумать не могу, надеюсь всё сделал правильно. Если вдруг захочется посмотреть структуру программы, то придеётся долго и упорно жать минусики что бы увидеть общую картину, функции в свёрнутом виде почему-то не хотят сохраняться. Внутри пример структур в файле windows.txt не переведенных и в windows.inc переведённых.