информационная безопасность
без паники и всерьез
 подробно о проекте
Сетевые кракеры и правда о деле ЛевинаПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Мощные индийские ключи 
 Срочные патчи для критических уязвимостей... 
 Очередной рекордный патч Microsoft 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Не катит 07.08.01 10:21  Число просмотров: 1022
Автор: 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? Не так?
<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;
}
1





Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach