|
|
|
Создание ресурсов exe из dll
|
|||
|---|---|---|---|
|
#18+
Добрый день. Помогите пожалуйста понтять в чем я ошибаюсь. Суть программы следующая, есть prog.exe и prog.dll в prog.exe находится главная форма на каторой распологается элемент TabCtrl. Cуществует структура данных которая при инициализации форы заполняется указателеями в том числе и на TabCtrl. Память под нее выделяется, далее эта структура передается в prog.dll где находится шаблон IDD_FORM, суть dll в том что для каждой новой вкладки она стартует новый поток, который соответсвенно будет заниматьс только ей. Все бы ничего, поток стартует структура передается в заполненом виде, но когда дело доходит до строки m_ptrTabContent->m_ptrDlg->Create(MAKEINTRESOURCE(IDD_TABDLG),(CWnd*)m_ptrTabContent->m_ptrParentTab); програма вылетает с ошибкой Assertation Faild. Причем когда точно такой же вызов делаю в контексте prog.exe то все в порядке. К слову сказать, данные проинициализированны так m_ptrTabContent->m_ptrParentTab = &m_ctrlTab;//контрол на элемент TabCtrl m_ptrTabContent->m_ptrDlg = new CTabCtrl; Что я делаю не так, в глубине понимаю что недопонимаю чего то касательно адресного пространства возможно а может и нет, вобщем не могу понять где мояя ошибка. Буду признателен за коентарии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 20:14 |
|
||
|
Создание ресурсов exe из dll
|
|||
|---|---|---|---|
|
#18+
MaximZaikinДобрый день. Помогите пожалуйста понтять в чем я ошибаюсь. Суть программы следующая, есть prog.exe и prog.dll в prog.exe находится главная форма на каторой распологается элемент TabCtrl. Cуществует структура данных которая при инициализации формы заполняется указателеями в том числе и на TabCtrl. Память под нее выделяется, далее эта структура передается в prog.dll где находится шаблон IDD_FORM, суть dll в том что для каждой новой вкладки она стартует новый поток, который соответсвенно будет заниматьс только ей. А нафига такое надо ? Вопрос риторический, ответ очевиден - ни на фиг не надо. Все бы ничего, поток стартует структура передается в заполненом виде, но когда дело доходит до строки m_ptrTabContent->m_ptrDlg->Create(MAKEINTRESOURCE(IDD_TABDLG),(CWnd*)m_ptrTabContent->m_ptrParentTab); програма вылетает с ошибкой Assertation Faild. Причем когда точно такой же вызов делаю в контексте prog.exe то все в порядке. К слову сказать, данные проинициализированны так m_ptrTabContent->m_ptrParentTab = &m_ctrlTab;//контрол на элемент TabCtrl m_ptrTabContent->m_ptrDlg = new CTabCtrl; Я не понимаю, почему два TabControl-а. Вообще на форме должен быть только один Tab, и много дочерних окон - диалогов. Да и простое несоответствие типов не смущает ? (судя по Венгерской нотации): m_ptrTabContent->m_ ptrDlg = new CTabCtrl ; И зачем их надо делать new - их обычно фиксированное количество. Тут скорее всего ты неправильно инициализируешь потоки, они должны быть инициализированы MFC-шными функциями, ежели ты используешь Что я делаю не так, в глубине понимаю что недопонимаю чего то касательно адресного пространства возможно а может и нет, вобщем не могу понять где моя ошибка. Адреснае прастранства ни при чем. Надо видимо выкинуть кашу из головы и начать ею думать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 23:30 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34092591&tid=2030152]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
142ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 412ms |

| 0 / 0 |
