Подскажите какю-нибудь документацию на русском по IStream. В MSDN как-то кратко и не понятно...
Нужно срочно переписать на си, я не могу понять, что за QWORD и каким образом он используется как LARGE_INTEGER и ULARGE_INTEGER.
Да и вообще асм не сильно понимаю... на уровне mov, sub, add
LOCAL dwQWord: QWORD
lea edi, dwQWord
mov dword ptr[edi], 0
mov dword ptr[edi+4], 0
coinvoke Stream, IStream, Seek, dwQWord, STREAM_SEEK_END, addr dwQWord
Помогите пожалуста. Заранее спасибо за ответ !
Здравствуйте, Holly_Roger, Вы писали:
H_R>Подскажите какю-нибудь документацию на русском по IStream. В MSDN как-то кратко и не понятно...
H_R>Нужно срочно переписать на си, я не могу понять, что за QWORD и каким образом он используется как LARGE_INTEGER и ULARGE_INTEGER.
Ну из самых общих соображений, Q обозначает quad, т.е. четверку. QWORD — четверка слов, восьмибайтная величина, в первом приближении то же самое, что long long.
H_R>Да и вообще асм не сильно понимаю... на уровне mov, sub, add
H_R>LOCAL dwQWord: QWORD
H_R>lea edi, dwQWord
H_R>mov dword ptr[edi], 0
H_R>mov dword ptr[edi+4], 0
Здесь обнуляется 8 байт по адресу dwQWord, на C что-то вроде
long long dwQWord = 0;
H_R>coinvoke Stream, IStream, Seek, dwQWord, STREAM_SEEK_END, addr dwQWord
Что такое coinvoke — на знаю.
H_R>Помогите пожалуста. Заранее спасибо за ответ !
Здравствуйте, Holly_Roger, Вы писали:
H_R>Подскажите какю-нибудь документацию на русском по IStream. В MSDN как-то кратко и не понятно...
H_R>Нужно срочно переписать на си, я не могу понять, что за QWORD и каким образом он используется как LARGE_INTEGER и ULARGE_INTEGER.
H_R>Да и вообще асм не сильно понимаю... на уровне mov, sub, add
H_R>H_R>LOCAL dwQWord: QWORD
H_R>lea edi, dwQWord
H_R>mov dword ptr[edi], 0
H_R>mov dword ptr[edi+4], 0
H_R>coinvoke Stream, IStream, Seek, dwQWord, STREAM_SEEK_END, addr dwQWord
H_R>
H_R>Помогите пожалуста. Заранее спасибо за ответ !
coinvoke это скорее всего call то есть вызов функции....далее через запятую передаются параметры
Здравствуйте, Holly_Roger, Вы писали:
H_R>LOCAL dwQWord: QWORD
H_R>lea edi, dwQWord
H_R>mov dword ptr[edi], 0
H_R>mov dword ptr[edi+4], 0
H_R>coinvoke Stream, IStream, Seek, dwQWord, STREAM_SEEK_END, addr dwQWord
Все это можно переписать так, ИМХО:
ULARGE_INTEGER uliNewPos = { 0 };
Stream->Seek( 0, STREAM_SEEK_END, &uliNewPos );
Подразумевается, что тип Stream — IStream *, IStreamPtr, CComPtr <IStream> или что-то аналогичное

.