Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Слушай, дружище, зачем так мучиться с этим языком С++, ты ведь не Билл Гейтс. Возьми тот же Python и программируй, он кроссплатформенный, под Windows тоже работает. Я сам давно заметил: то что на Си пишешь в страницу кода, на питоне решается в одну-две строки. При том, питон намного проще, я его сам недавно изучил по видеокурсу вот этому. Кстати, автор отлично там объясняет. Буквально день-два и уже будешь писать на нём, чего не скажешь про сложный С++.

Когда я ложу RichEdit в Dialog based приложение (в редакторе ресурсов) то приложение нифига не запускается, точнее запускается и тут же выходит, пытался трасировать - оказалось, что оно вываливается при инициализации диалога.
Может кто-нибудь знает, в чем эе тут дело.



Попробуй протрассировать CDialog::OnInitDialog(); функцию.
Но исходя из собственного опыта могу посоветовать поставить breakpoint
на функции CDialog::DoDataExchange(pDX);
или на CMyDialog::DoDataExchange(pDX);
где CMyDialog - твой класс диалога.
DoDataExchange - виртуальная функция, которая вызывается внутри OnInitDialog()
Вероятнее всего застрел может происходить в одной из DDX_ или DDV_ функций которые вызываются внутри DoDataExchange,
например :
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
DDX_Control(pDX, IDOK, m_btnOK);
//}}AFX_DATA_MAP
}

Если кнопки с идентификатором IDOK в диалоге нет, то проитзойдет выброс исключения, и если ты его нигде не ловишь, то сам понимаешь....
У меня опыт программирования на MFC 3 года, и я тебе советую, пока "по косточкам" не разберешь, какое нутро почти у каждой MFC функии, которые ты вызываешь, у тебя будут появляться подобные сюрпризы.
Я надеюсь исходники MFC у тебя есть.

Слушай, а вот у меня вопрос к тебе немного не в кассу :)
Как то раз я делал программулину и мне нужно было, чтобы она как можно меньше места занимала. Естевственно я начал ваять её через API. Но уж больно не хотелось париться со всяческими строковыми переменными, и тогда я выцепил CString и создал на его основе свой класс, предварительно выкинув из CString лишние и часто ненужные методы и операторы.
А вот потом мне захотелось проделать такую же штуку с CAsyncSocket, но увы, этот класс уходит корнями к CObject.
Так вот можно ли каким-нибудь создать самостоятельный независимый класс полностью идентичный CAsyncSocket ? HR>из MSDN>>>
If you are using a rich edit control in a dialog box , you must call !!! AfxInitRichEdit !!! once before the dialog box is displayed.
Вольный Перевод:
Если ты используешь rich edit контрол в окне диалога, ты должен вызывать AfxInitRichEdit() перед отображением окна диалога.

Я обычно это делаю в CWinApp::InitInstance()


<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS