|
|
|
Dll и создание формы
|
|||
|---|---|---|---|
|
#18+
Если несколько раз создать/закрыть форму из DLL, при закрытии проги используещей данную dll - Acces violation Unit.cpp //--------------------------------------------------------------------------- #include <vcl.h> #include <windows.h> #include "FormUnit.h" #pragma hdrstop //--------------------------------------------------------------------------- // Important note about DLL memory management when your DLL uses the // static version of the RunTime Library: // // If your DLL exports any functions that pass String objects (or structs/ // classes containing nested Strings) as parameter or function results, // you will need to add the library MEMMGR.LIB to both the DLL project and // any other projects that use the DLL. You will also need to use MEMMGR.LIB // if any other projects which use the DLL will be performing new or delete // operations on any non-TObject-derived classes which are exported from the // DLL. Adding MEMMGR.LIB to your project will change the DLL and its calling // EXE's to use the BORLNDMM.DLL as their memory manager. In these cases, // the file BORLNDMM.DLL should be deployed along with your DLL. // // To avoid using BORLNDMM.DLL, pass string information using "char *" or // ShortString parameters. // // If your DLL uses the dynamic version of the RTL, you do not need to // explicitly add MEMMGR.LIB as this will be done implicitly for you //--------------------------------------------------------------------------- #pragma argsused int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved) { return 1; } //--------------------------------------------------------------------------- extern "C" void __stdcall __export ShowFormAsModal(void) { MyForm=new TMyForm(Application); MyForm->ShowModal(); } extern "C" void __stdcall __export ShowForm(void) { MyForm=new TMyForm(Application); MyForm->Show(); } extern "C" void __stdcall __export CloseForm(void) { if(MyForm) { MyForm->Close(); MyForm->Free(); MyForm=NULL; } } //--------------------------------------------- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2004, 16:42 |
|
||
|
Dll и создание формы
|
|||
|---|---|---|---|
|
#18+
я тут гдето кидал пример , как юзать форму в длл поищи а то мне лень искать ш (';') (V),(V),, Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2004, 16:43 |
|
||
|
Dll и создание формы
|
|||
|---|---|---|---|
|
#18+
Причем, если вызываю экспортированную функцию CloseForm - все нормально. А если создаю а за тем закрываю форму из DLL крестиком несколько раз - маты(если один раз -все OK). Пример не нашел C ув. Tors ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2004, 17:02 |
|
||
|
Dll и создание формы
|
|||
|---|---|---|---|
|
#18+
Хех вот тут нашел что то, попробуй так ... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. ш (';') (V),(V),, Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2004, 17:05 |
|
||
|
Dll и создание формы
|
|||
|---|---|---|---|
|
#18+
На выходе из void __fastcall TForm1::ButtonShowDLLFormClick(TObject *Sender) Access violation ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.10.2004, 17:42 |
|
||
|
Dll и создание формы
|
|||
|---|---|---|---|
|
#18+
Хмм , помойму еще надо включать RTL посмотри включен он у тебя или нет ш (';') (V),(V),, Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2004, 10:20 |
|
||
|
Dll и создание формы
|
|||
|---|---|---|---|
|
#18+
авторНа выходе из void __fastcall TForm1::ButtonShowDLLFormClick(TObject *Sender) Access violation Такая фигня с разными модулями может быть например в таких случаях(сам нарывался): При попытке доступа модуля к запрещённому куску памяти приложения. У меня как оно было: полез я в explorer, в контрол в некий, и сказал ему: SendMesage(..) c сообщением, где в lParam передавался указатель на _правильный_ кусок памяти для этого сообщения - типа вытянуть некоторую структуру инфы. В результате я уронил ехрлогег c вышеописанной ошибкой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2004, 11:00 |
|
||
|
Dll и создание формы
|
|||
|---|---|---|---|
|
#18+
RTL включен. Народ, дайте пример(ссылочку или на secor@ukr.net или в топик), как работать с формами из дллины C ув. Tors ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2004, 12:57 |
|
||
|
Dll и создание формы
|
|||
|---|---|---|---|
|
#18+
А если так ... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2004, 13:48 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=429&tid=2034269]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
16ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 325ms |

| 0 / 0 |
