Я создал DLL в C++ VS2010.C++: одновременное создание библиотеки DLL для нескольких процессов
Мне кажется, что 2 программы не могут получить к нему доступ в одно и то же время. Первая программа 1 должна завершить вызовы в DLL, только тогда DLL будет обрабатывать вызовы из другой программы.
Я хотел бы знать, есть ли какой-либо переключатель в настройках проекта, который мне нужно установить, чтобы сделать DLL «многопоточным».
DLL используется в Windows SAPI. Программа (в моем случае две программы) может ссылаться на SAPI и делать компьютерный голос (компьютерный голос - это DLL) что-то говорить. Я ожидал, что обе программы будут говорить одновременно, но так как они этого не делают (они ждут друг друга), я ожидал, что моя DLL будет однопоточной.
спасибо.
Не могли бы вы предоставить более подробную информацию о том, что вы делаете? Не должно быть причин, по которым две программы не могут одновременно использовать одну и ту же DLL. Каждый загрузит DLL в свое собственное пространство памяти и выполнит код самостоятельно. В современной ОС ни один процесс не будет иметь никаких знаний или доступа к другому процессу. –
Есть причины, по которым он может появиться, как описывает tmighty. Он может делать кучу вещей, удерживая замок загрузчика. Это также может быть синхронизация по именованному событию или другому примитиву синхронизации. У нас нет возможности узнать информацию. Но мои деньги находятся на замке загрузчика. –
@MicahCaldwell DLL используется Windows SAPI. Программа (в моем случае две программы) может ссылаться на SAPI и делать компьютерный голос (в моем случае DLL) что-то говорить. Я ожидал, что обе программы будут говорить одновременно, но так как они этого не делают (они ждут друг друга), я ожидал, что моя DLL будет однопоточной. – tmighty