Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > BeginThread


Автор: Alca 15.1.2009, 13:39
Как правильно написать?
Код

//---------------------------------------------------------------------------
int __fastcall ThreadFunc(void * pParam) {
    TfrmMain *pThis = static_cast<TfrmMain*>(pParam);
    ShellExecute(NULL, NULL, "calc.exe", NULL, NULL, SW_SHOW);
    return 0;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnStartClick(TObject *Sender) {
    unsigned int dwId = 0;
    HANDLE  hThread = BeginThread(NULL, 0, &ThreadFunc, this, 0, dwId);        //<<<<<<<<<
}
//---------------------------------------------------------------------------

Цитата

[C++ Error] Unit1.cpp(26): E2034 Cannot convert 'int' to 'void *'

Автор: mrbrooks 15.1.2009, 13:49
Блин эти обертки под WinAPI вещь не кошерная.  Может проще TThread?

Автор: Alca 15.1.2009, 13:59
Код

[BCC32 Error] Unit1.cpp(24): E2034 Cannot convert 'unsigned long (__stdcall *)(void *)' to 'int (_fastcall *)(void *)'
[BCC32 Error] Unit1.cpp(24): E2342 Type mismatch in parameter 'ThreadFunc' (wanted 'int (_fastcall *)(void *)', got 'unsigned long (__stdcall *)(void *)')
[BCC32 Error] Unit1.cpp(24): E2357 Reference initialized with 'unsigned long *', needs lvalue of type 'unsigned int'

Цитата

Может проще TThread?

Та мне всего-то надо файл в отдельном потоке запускать.

Автор: mrbrooks 15.1.2009, 14:04

Цитата(Alca @  15.1.2009,  13:59 Найти цитируемый пост)
Та мне всего-то надо файл в отдельном потоке запускать.

CreateProcess? 

Автор: Alca 15.1.2009, 14:07
Та не. Ну типа чтоб форма не подвисала

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)