相关疑难解决方法(0)

如何访问线程外的线程数据

问题:我在一个线程中启动MS Text-to-speech引擎,以避免DLL_attach崩溃.它开始很好,文本到语音引擎被初始化,但我不能访问线程外的ISpVoice.如何在线程外访问ISpVoice?毕竟这是一个全球变量......

你可以在这里找到XPThreads:http: //www.codeproject.com/KB/threads/XPThreads.aspx

#include <windows.h>
#include <sapi.h>
#include "XPThreads.h"


ISpVoice * pVoice = NULL;

unsigned long init_engine_thread(void* param)
{
Sleep(5000);
    printf("lolthread\n");



    //HRESULT hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);
    HRESULT hr = CoInitialize(NULL);

    if(FAILED(hr) )
    {
        MessageBox(NULL, TEXT("Failed To Initialize"), TEXT("Error"), 0);
        char buffer[2000] ;
        sprintf(buffer, "An error occured: 0x%08X.\n", hr);
        FILE * pFile = fopen ( "c:\\temp\\CoInitialize_dll.txt" , "w" );
        fwrite (buffer , 1 , strlen(buffer) , pFile );
        fclose (pFile);
    }
    else
    {   
        printf("trying to create instance.\n");
        //HRESULT …
Run Code Online (Sandbox Code Playgroud)

c++ windows dll multithreading text-to-speech

1
推荐指数
1
解决办法
853
查看次数

标签 统计

c++ ×1

dll ×1

multithreading ×1

text-to-speech ×1

windows ×1