Здрасте. собственно сабж - нужно сделать свой контрол и сразу встал в стопор, да бы надо впихнуть его в DLL , но при LoadLibrary не вызывается DLLEntryProc, в чем может быть проблема? И где можно почитать про создание своих компонентов? Помогите пожалуйста...
dgs, а DLLEntryProc – это кто? Я только DllMain и DllEntryPoint знаю) На ком пишешь? Посмотри сюда (и другие статьи там же). Вполне читабельно, но на сях, правда.
dgs На васме стотьи были про это гдето, давно видел. iZzz32 Это нормально называется InitRoutine, Dll* это обычно имя в сурце процедуры.
Clerk, линкер хочет по умолчанию то, что я перечислил. А вообще, тогда уж, это называется EntryPoint (если стандартной библиотеки нет, и управление сразу получает мой код). Я это всё к тому, что, может быть, оно поэтому и не вызывается, что обозвали неправильно?..
iZzz32 Линкеру без разницы, можешь хоть ExitProcess2 назвать, процедура не экспортируется. Повторяю настоящее имя, данное майкрософт это InitRoutine, остальное типа DllMain это имена скопипащенные с высокоуровневых языков.
Антиоффтоп: dgs, пока ты разрабатываешь контрол, не обязательно помещать его в .dll. Если пишешь на асме, просто вынеси его в .inc, так отлаживать удобнее. Но сразу не забывай о том, что экземпляров у контрола может быть несколько, поэтому никаких глобальных переменных; GetWindowLongPtr(hWnd, GWLP_USERDATA) для получения указателя на приватные данные контрола – обычно первое, что делается в WindowProc; не забывай, кстати, эти данные создавать и удалять по WM_NCCREATE/WM_NCDESTROY. С этого стоит начать. Потом сделаешь отрисовку по WM_PAINT, обработку мыши и клавиатуры. Не забудь ещё про WM_GETTEXT/WM_SETFONT/WM_GETDLGCODE, кстати. Какой контрол будешь разрабатывать? Оффтоп: Clerk, см. PM.
Что-то на подобии Google Chrome, при загрузке файла с интернета, там с низу кнопки красивые появляются с инфой, ну и решил попробовать, что у меня получится...