Потоки в Win98 ?
От: Time Россия  
Дата: 15.04.05 18:01
Оценка:
Здравствуйте, уважаемые.
Была dll и она нормально работает в WinXP т.е. потоки из функции DllMain создаются нормально. А вот в Win98 следующие траблы:
— даже в exe потоки создаются нормально только из другой функции, например:
DWORD WINAPI SecondThread(PVOID pvParam) 
{
 bla bla bla;
};
DWORD WINAPI FirstThread(PVOID pvParam) 
{
 //Это если из функции потоки создавать то работает
 //Если б поток создавались из WinMain то этого не надо 
    CreateThread(NULL, 0, SecondThread, (PVOID) NULL, 0, NULL);
 bla bla bla;
};
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                       LPTSTR    lpCmdLine,
                       int       nCmdShow)
{
 bla bla bla;
 FirstThread(NULL);//От так работает
 //А вот так не работает 
 CreateThread(NULL, 0, FirstThread, (PVOID) NULL, 0, NULL);
 CreateThread(NULL, 0, SecondThread, (PVOID) NULL, 0, NULL);
};


— а в Dll потоки ваще не воткнул как создать (прекрасно работает в WinXP просто вызов CreateThread нормально работает даже из DllMain), а в 98й GetLastError = 87 после CreateThread, а если использовать _beginthreadex то возвращаемое значение 0

Заранее благодарен
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
Re: Потоки в Win98 ?
От: Сергей Мухин Россия  
Дата: 15.04.05 18:37
Оценка: 1 (1)
Здравствуйте, Time, Вы писали:

T>Здравствуйте, уважаемые.


уважаемые у нас в метро ...

T>- а в Dll потоки ваще не воткнул как создать (прекрасно работает в WinXP просто вызов CreateThread нормально работает даже из DllMain), а в 98й GetLastError = 87 после CreateThread, а если использовать _beginthreadex то возвращаемое значение 0


включен ли юникод? влключена ли unicows?
---
С уважением,
Сергей Мухин
Re[2]: Потоки в Win98 ?
От: Time Россия  
Дата: 15.04.05 19:11
Оценка:
Здравствуйте, Сергей Мухин, Вы писали:

СМ>включен ли юникод? влключена ли unicows?

нет, а разве есть необходимость если строки все в формате ASCII?
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
Re: Потоки в Win98 ?
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 16.04.05 05:18
Оценка: 4 (2)
Здравствуйте, Time, Вы писали:

T> CreateThread(NULL, 0, SecondThread, (PVOID) NULL, 0, NULL);


T>- а в Dll потоки ваще не воткнул как создать (прекрасно работает в WinXP просто вызов CreateThread нормально работает даже из DllMain), а в 98й GetLastError = 87 после CreateThread, а если использовать _beginthreadex то возвращаемое значение 0


HANDLE CreateThread(
  LPSECURITY_ATTRIBUTES lpThreadAttributes,
  SIZE_T dwStackSize,
  LPTHREAD_START_ROUTINE lpStartAddress,
  LPVOID lpParameter,
  DWORD dwCreationFlags,
  LPDWORD lpThreadId
);

lpThreadId
[out] Pointer to a variable that receives the thread identifier. If this parameter is NULL, the thread identifier is not returned.

Windows Me/98/95: This parameter may not be NULL.

... << RSDN@Home 1.1.4 rev. 408>>
Re: Потоки в Win98 ?
От: j0ker  
Дата: 18.04.05 10:13
Оценка: 1 (1)
Здравствуйте, Time, Вы писали:

T> CreateThread(NULL, 0, FirstThread, (PVOID) NULL, 0, NULL);
T> CreateThread(NULL, 0, SecondThread, (PVOID) NULL, 0, NULL);
T>

В win98 параметр lpThreadId обязательный
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.