Anonymous
но он верный, а знач ошибка не тут
Anonymous
если бы он был неверен, ты бы не получил путь
Stanislav
Anonymous
может файл открываться не с первого раза? скажем потому что уже открыт?
Anonymous
и в правах на открытие у тебя не указан SHARE_DENY_NONE
Anonymous
или нечто подобное
Stanislav
вот у меня есть подозрения что винда не оч себя ведет если изнутри пытаться взять хэндл на себя же
Anonymous
файл может не открываться, если уже открыт другим логером
Stanislav
при чем тут логгер? я хочу получить хэндл своей либы
Anonymous
ты это сделал, не циклись на этом
Anonymous
логер при том что если файл не открылся, потом попытка открыть его снова - хлоп ошибка от getlasterror
Berkus
Anonymous
да, может
Anonymous
потому что при открытии файла создается хэндл
Anonymous
стоп, выходит что твой логер вообще работает неверно
Anonymous
он срабатывает на открытие файла
Anonymous
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365430(v=vs.85).aspx
Stanislav
открытие файла срабатвает позже
Anonymous
смотри, HFILE это хэндл, если чтение сводится к тому что вызвается эта апи
Stanislav
хфайлов нет
Anonymous
но он же должен как-то открыться
Anonymous
я предполагаю что он работает в итоге через эту апи
Stanislav
void write(LogLevel lvl, const char *str) {
if (!(lvl >= _level))
return;
if (_fp != stdout) {
_fp = fopen(log_path, "a");
if (_fp == NULL) {
perror("The following error occurred");
return;
}
}
fprintf(_fp, "%s %s\n", Logger::localtime_ms_s().c_str(), str);
if (_fp != stdout)
fclose(_fp);
}
Anonymous
fopen должен давать ошибку в errno
Stanislav
Anonymous
хрень какая-то выходит, получается
Stanislav
Stanislav
вот и я сижу думаю уже который день
Stanislav
толи я идиот, толи где
Anonymous
может какие-то другие апи вызываются между записью и WindowsError()?
Stanislav
не
Stanislav
это весь код
Anonymous
а первая либа тебе нужна при этом?
Anonymous
наскок я понимаю ты её подгружаешь, а потом спрашиваешь её путь
Anonymous
путь который ты мог узнать и без этого)
Stanislav
NULL не катит, там к процессу путь
Anonymous
сама к себе?
Anonymous
ага, понятно
Stanislav
сама к себе?
да, либа my_dll просит хэндл на либу "my_dll"
Anonymous
одно могу сказать точно, что если логер работает в потоке, то GetLastError распространяется только на тот поток в котором вызван
Stanislav
Anonymous
pezdec
Stanislav
я не зря поставил комменты же
Anonymous
ладно, а как насчёт такого варианта, что ты грузишь не прокси либу, а ту которую уже подгрузил?
Anonymous
а ну да, опять же не вариант
Stanislav
Anonymous
я понял уже)
Anonymous
может подгружается другая либа по другому пути с тем же названием?
Anonymous
тогда GetModuleHandle может вернуть путь не к той либе
Anonymous
но это всё равно не решает твою ошибку
Stanislav
Anonymous
можешь юзнуть SetLastError(0,0)
Anonymous
если тебе похуй
Stanislav
нене, мне интересно ) че оно
Square
Логгер это ваш... Оно ж getlasterror в кишках зовёт? Но зачем тебе звать ее если все гут?
Square
Ub
Square
Или я не прав? Надо мсдн внимательно почтать
Square
Чо спите уже? Чорт. Напишите потом как порешалось, мне тож интересно
Anonymous
никак не решилось
Anonymous
я GetLastError обычно только в DEBUG юзаю
Anonymous
Убунту же для тех кто совсем недавно решил попробовать что-то на вкус из unix.
Berkus
а дебиан для тех, кто это говно уже давно жрет, истинно так
Anonymous
Для виндузоидов.
Anonymous
Berkus
это была шутка, если ты вдруг серьезно решился меня поправлять - gentoo для красноглазых школьников-райсеров
Anonymous
чот на слабом пк не получилось за вменяемое время собрать нормальное ядро, для слабого пк
Danil
На дохлом двух поточном атоме ядро в один тред собиралось порядка 20 минут
Anonymous
хуй зна. ssd, 2 ghz*2
Anonymous
сутки почти
Danil
Лолшто
Evgenii
Омг
Anonymous
внатуре
серёжа
о_О
Anonymous
Square
Nikolay Markov
Sheridan