Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
 |
впервые слышу, чтоб глобальные ф-ии перегружали 07.08.01 01:14 Число просмотров: 904
Автор: kabanchik Статус: Незарегистрированный пользователь
|
а адрес получаешь так.
typedef CWinThread BeginThreadProc)(CRuntimeClass int, UINT,DWORD, LPSECURITY_ATTRIBUTES );
BeginThreadProc pfn = AfxBeginThread;
|
|
<programming>
|
А как получить адрес перегружаемой ф-ции(AfxBeginThread нпример) 06.08.01 09:45
Автор: Heromantor Статус: Незарегистрированный пользователь
|
Сабж что тут говорить. И еще как я увидел VC вызывает ф-цию таким способом:
int func(LPVOID p)
{
int *i=(int *)p;
*i=666;
return(*i);
}
....
int i;
_asm{
push 0
Тут непонятно почему в стек не пихаеться адрес возврата?
call func
add esp,4
mov i,eax
}
|
 |
впервые слышу, чтоб глобальные ф-ии перегружали 07.08.01 01:14
Автор: kabanchik Статус: Незарегистрированный пользователь
|
а адрес получаешь так.
typedef CWinThread BeginThreadProc)(CRuntimeClass int, UINT,DWORD, LPSECURITY_ATTRIBUTES );
BeginThreadProc pfn = AfxBeginThread;
|
 |  |
Не катит 07.08.01 10:21
Автор: Heromantor Статус: Незарегистрированный пользователь
|
> а адрес получаешь так. > > typedef CWinThread BeginThreadProc)(CRuntimeClass int, > UINT,DWORD, LPSECURITY_ATTRIBUTES ); > > BeginThreadProc pfn = AfxBeginThread;
Ф-ция AfxBeginThread имеет еще вариант с рабочим потоком т.е. CWinThread* AFXAPI AfxBeginThread(AFX_THREADPROC pfnThreadProc, LPVOID pParam,
int nPriority, UINT nStackSize, DWORD dwCreateFlags,
LPSECURITY_ATTRIBUTES lpSecurityAttrs)
Я так понимаю что AfxBeginThread являеться overload? Не так?
|
 |  |  |
катит, катит... 07.08.01 11:18
Автор: Qrot Статус: Незарегистрированный пользователь
|
#include <afx.h>
#include <afxwin.h>
#include <iostream.h>
typedef CWinThread * (AFXAPIBeginThreadProc1)(CRuntimeClass
int, UINT, DWORD, LPSECURITY_ATTRIBUTES);
typedef CWinThread * (AFXAPI *BeginThreadProc2)(AFX_THREADPROC, LPVOID,
int, UINT, DWORD, LPSECURITY_ATTRIBUTES);
UINT AFX_CDECL ThreadProc(PVOID)
{
cout << "thread" << endl;
return 0;
}
void func(BeginThreadProc2 pfn)
{
pfn(ThreadProc, NULL, THREAD_PRIORITY_NORMAL, 0, 0, NULL);
}
int main()
{
BeginThreadProc1 pfn1 = AfxBeginThread;
BeginThreadProc2 pfn2 = AfxBeginThread;
cout << hex << pfn1 << endl;
cout << hex << pfn2 << endl;
func(pfn2);
return 0;
}
|
|
|