в приложении есть функция. она работает с файлом. Myfunction.read("C:\\file.txt"); как, изменив имя файла направить ее в файл? т.е. чтобы при обращении на открытие файла (CreateFile само собой винда вызывает при открытии этого файла) функция реально работала с памятью? т.е. есть usingned char[] memory_file = {0x12, 0x13, 0x14, 0x15}; Myfunction.read( Memory_file_buf (memory_file) ); как перехватить обращение к этому файлу и подсунуть туда память? надеюсь ясно излагаю. memory_file сохранить в файл с именем C:\\file.txt не вариант. Язык : C++
ltshck Написать класс, производный от какого нибудь интерфейса IFile? Код (Text): class cMemoryFile : public IFile { ... };
вот перехватить CreateFile уже ближе... но незачем. Myfunction.read(...) лежит в myfunction.lib есть ее header файл а исходов нет... а нельзя ли завести какойнибудь Алиас для памяти? например \\?\\....\\31652684 чтобы при обращении к этому имени как к файлу шло обращение к памяти по адресу 31652684 , само собой в адресном пространстве этого exe.
ltshck Ну можете попробовать создать именованый пайп и подсунуть вместо имени файла. Подробности в MSDN.
ltshck Device\PhisicalMemory А не проще создать ramdrive? Плюс можно подмаунтить его в любой пустой каталог, то есть, ни патчить, не перехватывать ничего не надо. Можно, но возиться дольше надо.