Здравствуйте, BTFil, Вы писали:

BTF>Возможно ли записать в ресурсы проекта на VC6 или VC7 бинарник драйвера? Если это возможно то помогите примером или хотя бы советом где порыться.


Не обязательно в ресурсы, ИМХО проще в переменую.

Скрипт на пёрле (который я не знаю, поэтому не пинать сильно) для генерации исходника (имя бинарника передаём параметром. Или на С перепишите):
$columns = 8;

foreach $argnum (0 .. $#ARGV)
{
    $file = $ARGV[$argnum];
    print "\nProcessing file `$file'\n";
    open(IN, $file) or die "Can't open file: $!";
    binmode(IN);
    open(OUT, ">$file.cpp") or die "Can't open output file: $!";
    print OUT "unsigned char  data [] =\n{\n";
    $column = 0;
    while( ! eof(IN) )
    {
        ! $column++ and print OUT '    '; 
        printf OUT "0x%02X", ord(getc(IN));
        if( $column >= $columns or eof(IN) )
        {
            if( ! eof(IN) ) {  print OUT ","; }
            print OUT "\n";
            $column = 0;
        }
        else { print OUT ", "; } 
    }
    print OUT "};\n";
    close(OUT);
    close(IN);
}

Формируем файл как обычно:
    HANDLE kmd = CreateFile("driver.sys", FILE_ALL_ACCESS, 0, 0, CREATE_ALWAYS, 0, 0);
    if ( kmd != INVALID_HANDLE_VALUE )
    {
        unsigned long w;
        WriteFile(kmd, data /* сгенерированный скриптом массив */, sizeof(data), &w, 0);
        CloseHandle(kmd);
    }


А если в ресурсы, то идея та же, только вместо использования data получаем адрес данных файла (добавить в ресурсы как RT_RCDATA) посредством FindResource+LoadResource (LockResource вызывать по желанию) и размер SizeofResource. Слишком много телодвижений .
Автор: gear nuke    Оценить