формы в dll
P.S. Первая dll писалась аналогичным образом, но подобных ошибок не возникало.
Цитата:
Originally posted by Loki&Co
Есть приложение, к нему подключаются dll, в которых хранятся формы. Проблема в следующем: глюки возникают в случае, когда идет обращение через указатель формы к её свойствам и методам. При вызове формы из dll возникает ошибка памяти: "Access violation at adress ..." В чем может быть проблема? Если в методах формы не обращаться через ее указатель, то все нормально. Приложение имеет главное окно, а форма в dll - MDIChild.
P.S. Первая dll писалась аналогичным образом, но подобных ошибок не возникало.
Есть приложение, к нему подключаются dll, в которых хранятся формы. Проблема в следующем: глюки возникают в случае, когда идет обращение через указатель формы к её свойствам и методам. При вызове формы из dll возникает ошибка памяти: "Access violation at adress ..." В чем может быть проблема? Если в методах формы не обращаться через ее указатель, то все нормально. Приложение имеет главное окно, а форма в dll - MDIChild.
P.S. Первая dll писалась аналогичным образом, но подобных ошибок не возникало.
Поставь точку останова в то место, где создается твоя форма и убедись, что она действительно создается. А вообще лучше подобные вопросы иллюстрировать кодом.
Цитата:
Originally posted by Loki&Co
Есть приложение, к нему подключаются dll, в которых хранятся формы. Проблема в следующем: глюки возникают в случае, когда идет обращение через указатель формы к её свойствам и методам. При вызове формы из dll возникает ошибка памяти: "Access violation at adress ..." В чем может быть проблема? Если в методах формы не обращаться через ее указатель, то все нормально. Приложение имеет главное окно, а форма в dll - MDIChild.
P.S. Первая dll писалась аналогичным образом, но подобных ошибок не возникало.
Есть приложение, к нему подключаются dll, в которых хранятся формы. Проблема в следующем: глюки возникают в случае, когда идет обращение через указатель формы к её свойствам и методам. При вызове формы из dll возникает ошибка памяти: "Access violation at adress ..." В чем может быть проблема? Если в методах формы не обращаться через ее указатель, то все нормально. Приложение имеет главное окно, а форма в dll - MDIChild.
P.S. Первая dll писалась аналогичным образом, но подобных ошибок не возникало.
Как оказалось проблема заключается в другом. Получается, что ошибка при обращении к форме в FormCreate возникает в том случае, когда форма еще не создана. То есть если перед обращением поставить, например,
ShowMessage("Ok");
то все срабатывает нормально. Тогда возникает вопрос: как узнать что форма создана и к ней уже можно обращаться?
Цитата:
Originally posted by Loki&Co
Как оказалось проблема заключается в другом. Получается, что ошибка при обращении к форме в FormCreate возникает в том случае, когда форма еще не создана. То есть если перед обращением поставить, например,
ShowMessage("Ok");
то все срабатывает нормально. Тогда возникает вопрос: как узнать что форма создана и к ней уже можно обращаться?
Как оказалось проблема заключается в другом. Получается, что ошибка при обращении к форме в FormCreate возникает в том случае, когда форма еще не создана. То есть если перед обращением поставить, например,
ShowMessage("Ok");
то все срабатывает нормально. Тогда возникает вопрос: как узнать что форма создана и к ней уже можно обращаться?
Когда отработал конструктор - форма создана. Соответственно перед обращением к форме проверяй ее на равенство NULL.
Цитата:
Originally posted by Loki&Co
Как оказалось проблема заключается в другом. Получается, что ошибка при обращении к форме в FormCreate возникает в том случае, когда форма еще не создана. То есть если перед обращением поставить, например,
ShowMessage("Ok");
то все срабатывает нормально. Тогда возникает вопрос: как узнать что форма создана и к ней уже можно обращаться?
Как оказалось проблема заключается в другом. Получается, что ошибка при обращении к форме в FormCreate возникает в том случае, когда форма еще не создана. То есть если перед обращением поставить, например,
ShowMessage("Ok");
то все срабатывает нормально. Тогда возникает вопрос: как узнать что форма создана и к ней уже можно обращаться?
Проверь указатель формы на NULL