C++:使多个进程同时访问 DLL
C++: Making a DLL accessible to multiple processes concurrently
我在VS2010 C++创建了一个DLL。
在我看来,两个程序无法同时访问它。首先程序 1 必须完成对 DLL 的调用,然后 DLL 才会处理来自另一个程序的调用。
我想知道项目设置中是否有某个开关需要设置以使DLL"多线程"。
DLL 由 Windows SAPI 使用。一个程序(在我的例子中是两个程序)可以引用SAPI并使计算机语音(计算机语音是DLL)说些什么。我希望两个程序同时说话,但由于它们不说话(它们互相等待),我希望我的 DLL 是单线程的。
谢谢。
语音 API 序列化来自多个源的语音,因此它们不会同时播放。 一个将首先播放,然后播放下一个,依此类推,直到没有更多待处理的语音要播放。 您可以通过注册表禁用此功能,如下所述:http://msdn.microsoft.com/en-us/library/ee431801(v=vs.85).aspx#_Toc494873956
特别是HKEY_LOCAL_MACHINESOFTWAREMICROSOFTSpeechAudioOutput<AudioOutput1>Attributes
中的NoSerializeAccess
值,其中<AudioOutput1>
是音频输出设备的名称。
此信息可在 http://msdn.microsoft.com/en-us/library/speechplatform_ispaudio.aspx
为了防止多个 TTS 语音或引擎同时说话,语音平台将输出序列化为实现 ISpAudio 接口的对象。若要禁用对 ISpAudio 对象的输出序列化,请将名为"NoSerializeAccess"的属性放在其对象令牌的"属性"文件夹中。
- 从C++dll访问C#中的一行主要参数
- 使用c#访问c++dll中带有char*参数的函数时发生AccessViolationException
- 跨 DLL 边界访问虚拟方法是否安全/可能?
- 在类 12.exe 中0x7B37FF80 (ucrtbased.dll) 引发异常: 0xC0000005:访问冲突读
- 从 exe 和 dll 访问静态库中的 extern 变量
- 从Delphi调用C++DLL时发生访问冲突
- 在 DLL 中嵌入 Python:Py_DECREF列表对象时访问冲突读取位置
- 将 std::string 作为参数从一个 DLL 传递到另一个 DLL 引发访问冲突错误
- 如果使用低于 VS2015 的 vc++ 编译器版本编译,则 DLL 中的访问冲突
- x64 DLL 堆栈访问超出范围?
- Windows错误:异常:使用从C++到Python的ctypes创建DLL时出现访问冲突或Windows错误193
- 在尝试访问 DLL 函数时从 JVM 获取EXCEPTION_ACCESS_VIOLATION
- 如何从调用程序访问 DLL 的变量?
- 访问 DLL 中的 LStrHandle
- C++:使多个进程同时访问 DLL
- 从PHP DLL访问DLL函数
- Python -sip:如何从Python和c++访问DLL
- 访问dll方法时的访问冲突读取位置
- 访问DLL中的重载函数
- 用于c++的Python: wrapper需要访问.dll文件