Здравствуйте, уважаемые.
Была 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>>
Здравствуйте, Сергей Мухин, Вы писали:
СМ>включен ли юникод? влключена ли unicows?
нет, а разве есть необходимость если строки все в формате ASCII?
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
Здравствуйте, 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>>
Здравствуйте, Time, Вы писали:
T> CreateThread(NULL, 0, FirstThread, (PVOID) NULL, 0, NULL);
T> CreateThread(NULL, 0, SecondThread, (PVOID) NULL, 0, NULL);
T>
В win98 параметр lpThreadId обязательный