ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Студия и диалоговые приложения
  #1  
Старый 30.03.2010, 23:47
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию Студия и диалоговые приложения

Я уже много времени мучаюсь с проблемой - при создании приложения с главным окном в виде диалога из пустого проекта (без всяких stdafx и т.д.), оно просто не работает. То есть запускается и сразу закрывается.

общий вид кода такой:

PHP код:
int APIENTRY _tWinMain(HINSTANCE hInstance,
                     
HINSTANCE hPrevInstance,
                     
LPTSTR    lpCmdLine,
                     
int       nCmdShow)
{
    
DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),0,MainWnd);
    return 
0;
}

INT_PTR CALLBACK MainWnd(HWND hDlgUINT messageWPARAM wParamLPARAM lParam)
{
    return (
INT_PTR)FALSE;

1)В отладчике проверял - FindResourceEx(), вызываемый DialogBox() возвращает ноль при поиске ресурса диалога.
2)Этот ресурс ЕСТЬ
3)Такой бодяги нет при создании проекта с stdafx

Пожалуйста помогите, я уже просто зае....ся
 
Ответить с цитированием

  #2  
Старый 30.03.2010, 23:58
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию

Цитата:
Первый этап обработки исключения в "0x7c9102f6" в "lab14.exe": 0xC0000005: Нарушение прав доступа при чтении "0x0dc7f9d4".
- выдал отладчик студии

В общем похоже что в DialogBox передается левый hInstance (наверное из - за рандомного базового адреса), как это можно починить?
 
Ответить с цитированием

  #3  
Старый 31.03.2010, 08:33
transserg
Участник форума
Регистрация: 02.07.2008
Сообщений: 132
Провел на форуме:
1035284

Репутация: 52
Отправить сообщение для transserg с помощью ICQ
По умолчанию

ntldr вот проект от VS2008 в котором главная форма диалог из ресурсов и одна кнопка.. компилится и работает =). писался тоже из пустого проекта ручками.
http://www.multiupload.com/1OI5J94IWZ ссыль на архив с проэктом
Код:
INT_PTR CALLBACK DialogProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam)
{			
	switch (uMsg)
	{	
	case WM_COMMAND:
		switch (wParam)
		{	
			case IDC_BUTTON1:
			MessageBox(hwndDlg,L"Тест",L"!!!!!",MB_OK);
			return INT_PTR(TRUE);
		}  
	case WM_INITDIALOG:
		{
			return INT_PTR(TRUE);
		}
	case WM_CLOSE	: 
		EndDialog(hwndDlg,wParam); 
		return INT_PTR(TRUE);			

	case WM_DESTROY	: 
		EndDialog(hwndDlg,wParam); 
		return INT_PTR(TRUE);							
	}
	return 0;
}


int CALLBACK WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
	DialogBoxParam(hInstance, MAKEINTRESOURCE	(IDD_DIALOG1), HWND_DESKTOP, (DLGPROC)DialogProc, 0);
}
в проекте всего 2 функции =)

Последний раз редактировалось transserg; 31.03.2010 в 08:37..
 
Ответить с цитированием

  #4  
Старый 31.03.2010, 09:23
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию

Цитата:
Сообщение от transserg  
ntldr вот проект от VS2008 в котором главная форма диалог из ресурсов и одна кнопка.. компилится и работает =). писался тоже из пустого проекта ручками.
http://www.multiupload.com/1OI5J94IWZ ссыль на архив с проэктом
Код:
INT_PTR CALLBACK DialogProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam)
{			
	switch (uMsg)
	{	
	case WM_COMMAND:
		switch (wParam)
		{	
			case IDC_BUTTON1:
			MessageBox(hwndDlg,L"Тест",L"!!!!!",MB_OK);
			return INT_PTR(TRUE);
		}  
	case WM_INITDIALOG:
		{
			return INT_PTR(TRUE);
		}
	case WM_CLOSE	: 
		EndDialog(hwndDlg,wParam); 
		return INT_PTR(TRUE);			

	case WM_DESTROY	: 
		EndDialog(hwndDlg,wParam); 
		return INT_PTR(TRUE);							
	}
	return 0;
}


int CALLBACK WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
	DialogBoxParam(hInstance, MAKEINTRESOURCE	(IDD_DIALOG1), HWND_DESKTOP, (DLGPROC)DialogProc, 0);
}
в проекте всего 2 функции =)
Я уж не знаю, как так получилось, но подозреваю, что дело в том, что у тебя главная функция WinMain, а у меня какая-то левая.


Хотя я уже решил проблему, прописав в свойствах проекта фиксированный адрес базы 0x400000 и соответственно таким образом вызвал диалог:

PHP код:
int APIENTRY _tWinMain(HINSTANCE hInstance,
                     
HINSTANCE hPrevInstance,
                     
LPTSTR    lpCmdLine,
                     
int       nCmdShow)
{
    
DialogBox((HINSTANCE)0x400000,MAKEINTRESOURCE(IDD_DIALOG1),0,MainWnd);
    return 
0;


Последний раз редактировалось ntldr; 31.03.2010 в 09:26..
 
Ответить с цитированием

  #5  
Старый 31.03.2010, 10:16
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме:
991929

Репутация: 395


По умолчанию

ntldr не делай так
лучше пропиши тогда уж hInstance=GetModuleHandle(NULL); хистанс у тебя не правильный из-за не правильной главной функции она должна называться WinMain (CRT потом сам сделает все что нужно - я про юникод)
а вообще http://msdn.microsoft.com/en-us/library/ms644996(v=VS.85).aspx
 
Ответить с цитированием

  #6  
Старый 31.03.2010, 11:14
ntldr
Постоянный
Регистрация: 04.12.2007
Сообщений: 424
Провел на форуме:
2364957

Репутация: 479
По умолчанию

Цитата:
Сообщение от Gar|k  
ntldr не делай так
лучше пропиши тогда уж hInstance=GetModuleHandle(NULL); хистанс у тебя не правильный из-за не правильной главной функции она должна называться WinMain (CRT потом сам сделает все что нужно - я про юникод)
а вообще http://msdn.microsoft.com/en-us/library/ms644996(v=VS.85).aspx
вот вот, я так же хотел сделать
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Крокодил ВКонтакте - анализ багов приложения mailbrush Социальные сети 41 07.04.2010 17:25
Приложения ВКонтакте (вопросы, продвижение, моненизация). Folc Социальные сети 18 06.03.2010 22:07
Продаю приложения для ВК ZnikiR Покупка, продажа, услуги в Соц. Сетях 11 01.10.2009 22:42
Введение в Symfony Framework gibson Авторские статьи 1 30.04.2009 11:15



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ