char *buf;
size_t buf_sz;
...
BOOL CALLBACK DuffRecording(HRECORD hangle, const void *buffer, DWORD lenght, void *user)
{
buf = realloc(buf, buf_sz + length);
memcpy(buf + buf_sz, buffer, lenght);
buf_sz += length;
return TRUE;
}
// эту функцию нужно вызывать когда есть новые данные,
// например, после каждого вызова DuffRecording
void chunk_handler(void)
{
size_t offset = 0;
while (buf_sz >= offset + CHUNK_SIZE) {
do_something_with_data(buf + offset);
offset += CHUNK_SIZE;
}
if (offset) {
memmove(buf, buf + offset, buf_sz - offset);
buf_sz -= offset;
}
}
// эта функция будет вызвана с p указывающим на буфер длиной CHUNK_SIZE
void do_something_with_data(void *p)
{
...
}
void SomeClass::someFunc(SYSTEMTIME * _minDate, SYSTEMTIME * _maxDate){
SYSTEMTIME minDate, maxDate;
std::vector<SYSTEMTIME> dates;
...
minDate = dates[0]; // тут все хорошо. Новые значения присвоены
maxDate = dates[1];
...
*_minDate = minDate;
*_maxDate = maxDate;
}
void SomeClass::someFunc(SYSTEMTIME * & _minDate, SYSTEMTIME * & _maxDate){
SYSTEMTIME minDate, maxDate;
std::vector<SYSTEMTIME> dates;
...
minDate = dates[0]; // тут все хорошо. Новые значения присвоены
maxDate = dates[1];
...
// что-то сделать с объектами, на которые указывают _minDate и _maxDate, например освободить
_minDate = new SYSTEMTIME(minDate); // _minDate присвоен указатель на новый объект.
_maxDate = new SYSTEMTIME(maxDate); // проветил, _minDate и _maxDate дейсвтиетльно какие нужно.
}
как посмотреть на внутренности ОС, посмотреть как это работает?
так как i - закрытый член базового класса, в производном классе его нет
ответа на свой вопрос я не нашел
Unless redefined in the derived class, members of a base class are also considered to be members of the derived class. The base class members are said to be inherited by the derived class.
$ cat > hello.S <<'EOF'
.data
.Lhello:
.ascii "Hello, world\n"
.text
.global _start
_start:
movl $1, %ebx
leal .Lhello, %ecx
movl $13, %edx
movl $4, %eax
int $0x80
movl $1, %eax
xorl %ebx, %ebx
int $0x80
EOF
$ gcc -m32 hello.S -nostdlib -o hello
$ ./hello
Hello, world
$
.text
.global _start
_start:
.incbin "code"
.text
.global _start
_start:
.byte 0xbb, 0x01, 0x00, 0x00, 0x00, 0x8d, 0x0d, 0xb8,
.byte 0x80, 0x04, 0x08, 0xba, 0x0d, 0x00, 0x00, 0x00,
.byte 0xb8, 0x04, 0x00, 0x00, 0x00, 0xcd, 0x80, 0xb8,
.byte 0x01, 0x00, 0x00, 0x00, 0x31, 0xdb, 0xcd, 0x80,
.byte 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x2c, 0x20, 0x77,
.byte 0x6f, 0x72, 0x6c, 0x64, 0x0a