Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Системное программирование и WinAPI > повторное открытие Pipe |
Автор: hawk3500 30.10.2012, 09:53 | ||
Доброго времени суток. Кто знает скажите почему в этом коде
hNamedPipeR = INVALID_HANDLE_VALUE? Любое повторное открытие пайпа выдаёт ошибку... Заранее благодарен. |
Автор: feodorv 30.10.2012, 09:55 |
GetLastError() скажите, пожалуйста. Добавлено через 1 минуту и 23 секунды PS Эта тема - для http://forum.vingrad.ru/forum/c-c++system-programming-WinAPI.html ![]() |
Автор: hawk3500 30.10.2012, 09:59 |
GetLastError возвращает 0x000000e7 ERROR_PIPE_BUSY |
Автор: feodorv 30.10.2012, 10:19 | ||
Вы бы создали бы новый экземпляр пайпа совместно с вызовом ConnectNamedPipe() в отдельном потоке. Тогда, глядишь, сработал бы второй вызов CreateFile. ЗЫ CreateNamedPipe создаёт один экземпляр пайпа, который работает только с присоединившемся к нему клиентом. С другим он уже работать не может. |
Автор: hawk3500 30.10.2012, 10:48 |
А можно поподробней? Т.е. после записи в пайп я должен создать поток в которм должен повторить всё что было до этого? |
Автор: feodorv 30.10.2012, 11:06 | ||||
Да нет. Просто в одном потоке реализуете сервер, в другом - клиента. В одном и том же потоке и сервер, и клиент вряд ли получатся:
В клиенте повторное открытие пайпа будет успешно только если сервер выполнит ConnectNamedPipe... |
Автор: boostcoder 30.10.2012, 11:34 |
hawk3500, для чего рукоблудить? есть же замечательный, временем проверенный, http://www.boost.org/doc/libs/1_51_0/doc/html/interprocess/synchronization_mechanisms.html#interprocess.synchronization_mechanisms.message_queue ;) |
Автор: hawk3500 30.10.2012, 12:02 |
А рукоблудить приходиться так как хочу попробовать в LoadLibrary передать имя пайпа... |
Автор: boostcoder 30.10.2012, 12:05 |
расскажи, для чего такое нужно? дико любопытно. |
Автор: hawk3500 30.10.2012, 12:17 |
Есть набор DLL, каждая из которых представляет реализацию того или иного алгоритма(интерполяция, обработка HDLC и т.д.) так вот хотелось бы их пометить в один файл.Этакая единая база. Что скажает?Можно загрузить DLL из pipe? |
Автор: boostcoder 30.10.2012, 12:32 |
все равно не понял, для чего такое делать... |
Автор: hawk3500 30.10.2012, 12:38 |
Дабы все файлы были в одном + так можно осуществить дополнительную защиту (ну из простого просто хранить в закриптованном виде, а при загрузке расшифровывать) |
Автор: bems 31.10.2012, 13:37 |
не выйдет, хотя бы потому что пайпы не маппятся на адреса как трушные файлы |