Вы можете использовать это регулярное выражение:
/^\/api\/(?!add(?:\/|$))([^\/]+)/i
В своем регулярном выражении, когда вы используете [^\/(add)]+
, это означает, что любой символ, кроме любого из [112 ]. (
, a
, d
, )
символы, потому что внутри класса символов, т.е. [...]
, нет группировки.
Вы не можете только обменяться данными через процессы. Я не рекомендую COM. Каналы не существуют в Windows CE. Ваш оптимальный маршрут является любой файлом с отображенной памятью (как на рабочем столе) или очередь сообщений точка-точка (ничто как на рабочем столе). То, которое лучше, зависит от Вашего сценария использования.
Не пытайтесь использовать перекрестную память процесса с VirtualAlloc, как предложено, поскольку это - небезопасный небезопасный взлом и не поддерживается на CE 6.0 или позже таким образом, Вы закончите тем, что повредились под WinMo 7 и позже.
Я не рекомендую использовать сообщения окон и WM_COPYDATA. Это медленно, топорно, и очень подвержено ошибкам.
Люди, только ответьте на вопросы, когда Вы не будете использовать платформу только, чтобы попытаться получить точки репутации. Если Вы не знаете платформу, позвольте кому-то еще помочь парню вместо того, чтобы отправить его на погони за несбыточным.
Так как Вам только нужно приложение (B) для общения с сервисом (A), почему Вы просто не используете CreateFile
и DeviceIoControl
с определенным набором IOCTLs?
Вы покрыли в значительной степени все доступные основания; COM, каналы, сокеты, файлы с отображенной памятью. Все процессы в Windows имеют абсолютно отдельные пространства памяти, таким образом, Вы ничего не можете совместно использовать, не используя один из тех механизмов IPC.
На Windows Mobile я, кажется, помню, что все процессы отображаются в то же адресное пространство. Так, создайте окна сообщения в обоих процессах с известными именами и или имена классов и используйте FindWindow в каждом процессе для нахождения другого.
Затем SendMessage с WM_APP определил идентификатор сообщения и указатель на данные для передачи в wParam или lParam.
Если я неправ и Мобилен, действительно делит память процесса, то просто используют WM_COPYDATA, который - на настольном размещении в ОЗУ использования и так действительно быстро - для отправки данных между приложениями.
Вот хороший источник для запуска с - http://msdn.microsoft.com/en-us/library/aa446520.aspx, который Вы решаете, какая опция является лучшим пригодным для Ваших потребностей.