Здравствуйте, mortalis, Вы писали:
M>Здравствуйте! M>Возникла необходимость воспользоваться функцией WideCharToMultiByte.
Эта функция из ядра недоступна. Там есть wcstombs...
.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Здравствуйте, mortalis, Вы писали:
M>Если поменять вот так местами: M>Выдает вот:
А ты говоришь, "там нет win"... Всё там есть, только глубоко запрятано.
Если это твои хедеры — то замени всюду #include <winXXX.h> на <windows.h>, ибо.
К сожалению, Platform SDK написан коряво (ради ускорения препроцессора), и крайне чувствителен к количеству и порядку включения внутренних хедеров.
Внутри windows.h этот порядок соблюдён. Воспроизвести его самостоятельно — можно, но не нужно.
Ещё варианты возникновения проблем:
— Случайно подцепился сразу к нескольким PSDK (от разных компиляторов, например), и возникла каша из инклудов. Нужно смотреть, куда ведёт INCLUDE path.
— Какая-то библиотека тащит внутри себя "выдержки и цитаты" из PSDK.
— Какая-то библиотека вообще наплевала на PSDK, и возникло пересечение идентификаторов (но это наименее вероятно).
Здравствуйте, mortalis, Вы писали:
M>Здравствуйте, Кодт, Вы писали:
К>>А ты говоришь, "там нет win"... Всё там есть, только глубоко запрятано.
M>Простите за ламерство, но я не могу найти в инклудах win даже поиском в файлах WinDDK\6001.18002\inc\. Не подскажите, где конкретно?
уберите все, кроме windows/h. Из текста оставьте только вызов нужной API ф-ии
потом добавляйте инклюды по одному
Здравствуйте, gear nuke, Вы писали:
GN>Эта функция из ядра недоступна. Там есть wcstombs...
Большое спасибо за информацию!
А проблему с windows.h решаю так: делаю новый модуль, в котором объявляю windows.h и реализую необходимые функции. А этот модуль просто подключаю к основному модулю драйвера — компилится! По-другому не получилось — то syntax error, то redefinition..., то в одном модуле, то в другом...
Думаю проблема в том, что windows.h на С++, а драйвер можно только на С писать.
Всем откликнувшимся огромное спасибо!