Здравствуйте DT, Вы писали:
DT>Непонятная закавыка — при вызове ReadFile (COM-клиент на VB) в нижеприведенном методе происходит неожиданное завершение работы клиента (если сконфигурировать в Release) или выдается сообщение "Debug assertion failed!" c комментарием "_CrtIsValidHeapPointer(pUserData)" в файле dbgheap.c (если сконфигурировать в Debug), которого, кстати, на моей машине в принципе нет. Причем последнее сообщение появляется при освобождении памяти из-под буфера free (buffer), а если эту строчку убрать, то происходит то же самое, что и в Release. Если закомментировать ReadFile, ошибка исчезает, но и необходимые функции тоже. Что делать?
<skipped>
DT> char *buffer = new char [Len + 1];
DT> ::SetFilePointer(hFile,0,NULL,FILE_BEGIN);
DT> ::ReadFile(hFile, &buffer, Len, &NoB, NULL);
<skipped>
еще бы не вылетало

надо ::ReadFile(hFile,
buffer, Len, &NoB, NULL);
buffer — уже указатель.