Здравствуйте, 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. Слишком много телодвижений . |