Winapi-Problem z wątkami

0

Witam!
Jak obsługiwać główny wątek z drugiego wątku?
Okno jest w wątku głównym.
Jeżeli dodam GetDlgItemTextW do drugiego wątku to ta funkcja nie działa.

0

Mam taki kod ( nie sugeruj się poprzednimi).

DWORD WINAPI SendExampleEmail(PVOID pvParam)
{
    char Buffer28[1000];
    char Buffer29[1000];
    char Buffer30[1000];
    GetDlgItemTextA(hwnd,Z,Buffer28,1000);
    GetDlgItemTextA(hwnd,X,Buffer29,1000);
    GetDlgItemTextA(hwnd,B1,(LPSTR)Buffer30,1000);

    Message message;
    message.setSubject("Test");
    message.setContents("Test");
    message.addAttachment("");
    message.addRecipient(Buffer28);

    SMTPTransport smtp;
    smtp.setHostAddress(Buffer29);
    smtp.setPort(587);
    smtp.setSenderAddress(Buffer28);
    smtp.setSenderPassword(Buffer30);
    smtp.send(message);
    return 0;
};

i

if(wParam==BUTTON1)
{
    DWORD Id;
    CreateThread(NULL,0,SendExampleEmail,(LPVOID)0,0,&Id);
    break;
}

Mówiłeś ,że funkcja GetDlgItemTextA działa w wątku a mi nie działa. :(

0

Debugger pokazuje złe wartości tych zmiennych.

1

Deja Vu?
Pobierz wszystkie dane z kontrolek do obiektu jakiejś struktury. Utwórz nowy wątek (prześlij obiekt z danymi, jako parametr wątku).

0

No to prościej. Jak pobrać zawatość texboxa z dialogu w wątku?

0

Gdzie ustawisz wartość zmiennej hwnd? Czy wartości tych wszystko mówiących stałych (to chyba stałe) Z, X i B1 są poprawne?

0

Zmienną hwnd dodaje w pliku a Z,X,B1 to identyfikaotry texboxów w zasobach.

0

smtp.setSenderAddress(Buffer28);

skąd wiesz że nie Buffer29? a może to miał być Buffer27? będziesz to za miesiąc pamiętał?

0

Zapisałem sobie w komentarzu taki exapmle inforumujący gdzie i co ma być.

0

Zrób następujące zmiany i pokaż co się dopisało do pliku plik.log

        char Buffer28[1000]={0};
        FILE *log;
        unsigned ret;

        ret=GetDlgItemTextA(hwnd,Z,Buffer28,1000);
        log=fopen("plik.log","a");
        fprintf(log,"hwnd=%d; Z=%d; Buffer28=\"%s\"; ret=%u; Error=%d;\n",hwnd,Z,Buffer28,ret,GetLastError());
        fclose(log);

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0