DllMain BANYAK APLIKASI
Results 1 to 10 of 10

Thread: DllMain BANYAK APLIKASI

  1. #1
    Hai;

    hanya sebuah pertanyaan kecil: Saya melihat sejumlah file sumber dll MT4 dan saya melihat bahwa beberapa penggunaan: BOOL APIENTRY DllMain sementara yang lain tidak.

    (misalnya pakarsampel MT4DLL Sampel resmi

    Kode PHP: <code> <span style = ”color: # 000000”> <span style = ”color: # 0000BB”> </span> <span style = ”color: # FF8000”>/ ---- -------------------------------------------------- ------------
    /||
    / ---------------------- --------------------------------------------
    <span> <span style = ”color: # 0000BB”> BOOLAPIENTRYDllMain </span> <span style = ”color: # 007700”> (</span> <span style = ”warna: # 0000BB”> HANDLEhModule </span > <span style = ”color: # 007700”>, </span> <span style = ”color: # 0000BB”> DWORDul_reason_for_call </span> <span style = ”color: # 007700”>, </span> < span style = ”color: # 0000BB”> LPVOIDlpDisajikan </span> <span style = ”color: # 007700”>)
    {
    </span> <span style = ”warna: # FF8000” >/----
    </span> <span style = ”color: # 007700”> switch (</span> <span style = ”color: # 0000BB”> ul_reason_for_call </span> <span style = ”color: # 007700”>)
    {
    huruf </span> <span style = ”color: # 0000BB”> DLL_PROCESS_ATTACH </span> <span style = ”warna: # 00 7700 ”>:
    huruf </span> <span style =” color: # 0000BB ”> DLL_THREAD_ATTACH </span> <span style =” color: # 007700 ”>:
    huruf </span> <span style = ”color: # 0000BB”> DLL_THREAD_DETACH </span> <span style = ”color: # 007700”>:
    huruf </span> <span style = ”color: # 0000BB”> DLL_PROCESS_DETACH <span> <span style = ”color: # 007700”>:
    break;
    }
    </span> <span style = ”color: # FF8000”>/--- -
    </span> <span style = ”color: # 007700”> kembalikan (</span> <span style = ”color: # 0000BB”> TRUE </span> <span style = ”warna: # 007700 ”>);
    }
    </span> <span style =” color: # 0000BB ”> </span> </span> </code> Pertanyaan saya: apakah ada aturan praktis bahwa seperti contoh MTF harus dimasukkan sebagai default?

  2. #2
    Fungsi APIENTRY (jika ada) dipanggil oleh windows setiap kali DLL dimuatdibongkar, dan dapat digunakan untuk mengubahmembebaskan memori dan menjalankan rutin pengaturan. Karena konteks diberikan kode yang sesuai dapat diimplementasikan. Ini dapat berguna untuk mengelola sumber daya DLL internal ketika DLL digunakan berkali-kali oleh EG appliion oleh beberapa indiors dan atau dengan beberapa EA. Baca di sini untuk info lebih lanjut
    http://support.microsoft.com/kb/815065

  3. #3
    Terima kasih rentang terikat. Tetapi apakah Anda akan mengatakan bahwa disarankan untuk menggunakan sesuatu seperti contoh MT4 dalam sebagian besar kasus. Atau hanya meninggalkannya sebagai sejumlah dll mt4 lain lakukan.

  4. #4
    Anda hanya membutuhkannya jika Anda perlu menghubungkannya dengan pemuatanpembongkaran, dll. Jika tidak, semua yang dilakukan adalah mengembalikan nilai true (yang berarti sukses) dan fungsi default kosong yang sama (yang mengembalikan kesuksesan dan tidak melakukan apa pun) harus diinstal secara otomatis oleh compilerlinker ketika Anda tidak mendeklarasikannya sendiri.

  5. #5
    Terima kasih banyak, 7bit. Anda baik sekali.

  6. #6
    hai 7bit, pertanyaan kecil: adalah DllMain BANYAK Apientry agak mirip dengan apa yang Anda lakukan di Anda Pascal dll. dengan kode PHP: <code> <span style = ”color: # 000000”> <span style = ”color: # 0000BB”> inisialisasi
    PyStatus </span> <span style = ”color: # 007700”> : = </span> <span style = ”color: # 0000BB”> 0 </span> <span style = ”color: # 007700”>;
    </span> <span style = ”warna: # 0000BB ”> LoadPyDll </span> <span style =” color: # 007700 ”> ();
    </span> <span style =” warna: # 0000BB ”> finalisasi
    UnloadPyDll </span > <span style = ”color: # 007700”> ();
    </span> <span style = ”color: # 0000BB”> end </span> <span style = ”color: # 007700”> .
    </span> <span style = ”color: # 0000BB”> </span> </span> </code> akan masuk ke dalam BOOL Apientry DllMain jika Anda akan menulisnya di C jika demikian bagaimana yang terlihat seperti: Kode PHP: <code> <span style = ”color: # 000000”> <span style = ”color: # 0000BB”> </span> <span style = ”color: # FF8000”>/ -------------------------------------------------- ----------------
    /||
    / ------------------ ------------------------------------------------ < br> </span> <span style = ”color: # 0000BB”> BOOLAPIENTRYDllMain </span> <span style = ”color: # 007700”> (</span> <span style = ”warna: # 0000BB”> HANDLEhModule </span> <span style = ”color: # 007700”>, </span> <span style = ”color: # 0000BB”> DWORDul_reason_for_call </span> <span style = ”color: # 007700”>, <span> <span style = ”color: # 0000BB”> LPVOIDlpReserved </span> <span style = ”color: # 007700”>)
    {
    </span> <span style = ”warna : # FF8000 ”>/----
    </span> <span style =” color: # 007700 ”> switch (</span> <span style =” color: # 0000BB ”> ul_reason_for_call </span> <span style =” color: # 007700 ”>)
    {
    case </span> <span style =” warna: # 0000BB ”> DLL_PROCESS_ATTACH <span> <span style = ”color: # 007700”>:
    </span> <span style = ”color: # 0000BB”> PyStatus </span> <span style = ”color: # 007700”> = </span> <span style = ”color: # 0000BB”> 0 </span> <span style = ”color: # 007700”>;
    </span> <span style = ”warna: # 0000BB ”> LoadPyDll </span> <span style =” color: # 007700 ”> ();

    huruf </span> <span style =” color: # 0000BB ”> DLL_THREAD_ATTACH </span> <span style = ”color: # 007700”>:
    huruf </span> <span style = ”color: # 0000BB”> DLL_THREAD_DETACH </span> <span style = ”color: # 007700”>: < br> case </span> <span style = ”color: # 0000BB”> DLL_PROCESS_DETACH </span> <span style = ”warna: # 007700”>:
    </span> <span style = ”warna : # 0000BB ”> UnloadPyDll </span> <span style =” color: # 007700 ”> ();

    istirahat;
    }
    </span> <span style = ”Color: # FF8000”>/----
    </span> <span style = ”Color: # 007700”> return (</span> <span style = ”color: # 0000BB”> TRUE </span> <span style = ”color: # 007700”>);
    }
    </span> <span style = ”color: # 0000BB”> </span> </span> </code> atau akan menempatkannya dengan DLL_THREAD_ATTACH, DLL_THREAD_DETACH

  7. #7

    Quote Originally Posted by ;
    hai 7bit, pertanyaan kecil: adalah DllMain BANYAK Apientry agak mirip dengan apa yang Anda lakukan di Anda Pascal dll. dengan kode PHP: <code> <span style = ”color: # 000000”> <span style = ”color: # 0000BB”> inisialisasi
    PyStatus </span> <span style = ”color: # 007700”> : = </span> <span style = ”color: # 0000BB”> 0 </span> <span style = ”color: # 007700”>;
    </span> <span style = ”warna: # 0000BB ”> LoadPyDll </span> <span style =” color: # 007700 ”> ();
    </span> <span style =” warna: # 0000BB ”> finalisasi
    UnloadPyDll </span > <span style = ”color: # 007700”> ();
    </span> <span style = ”color: # 0000BB”> end </span> <span style = ”color: # 007700”> .
    </span> <span style = ”color: # 0000BB”> </span> </span> </code> akan masuk ke dalam BOOL Apientry DllMain jika Anda akan menulisnya di C jika demikian bagaimana yang terlihat seperti: [php]/ ---------------------------------------- -------------------------- /| |/ ----------------------------------------------- ------------------- BOOL ...
    Memuat DLL di DllMain adalah ide yang sangat buruk: http://msdn.microsoft.com/en-us/library/ms682583(v=VS.85).aspx

  8. #8
    [quote = M_j; 4969179] hi, sebuah pertanyaan kecil: apakah BOOL Apientry DllMain agak mirip dengan apa yang Anda lakukan dalam diri Anda Pascal dll. dengan kode PHP: <code> <span style = ”color: # 000000”> <span style = ”color: # 0000BB”> inisialisasi
    PyStatus </span> <span style = ”color: # 007700”> : = </span> <span style = ”color: # 0000BB”> 0 </span> <span style = ”color: # 007700”>;
    </span> <span style = ”warna: # 0000BB ”> LoadPyDll </span> <span style =” color: # 007700 ”> ();
    </span> <span style =” warna: # 0000BB ”> finalisasi
    UnloadPyDll </span > <span style = ”color: # 007700”> ();
    </span> <span style = ”color: # 0000BB”> end </span> <span style = ”color: # 007700”> .
    </span> <span style = ”color: # 0000BB”> </span> </span> </code> Ya, namanya berasal dari dalam fungsi itu. Biner yang dikompilasi akan selalu secara otomatis berisi kode dari pustaka runtime yang selalu diperlukan dan salah satu bagian dari kode ini adalah fungsi DllMain (cukup memenuhi dan fleksibel) yang melakukan banyak hal secara otomatis (menginisialisasideinitialize manajemen tumpukan, penanganan eksepsi, Thread penyimpanan lokal, dll), hal-hal yang harus Anda lakukan secara manual di C. Ada beberapa tempat di mana Anda dapat menghubungkan ke semua ini dengan cara Pascal-standar, salah satu dari tempat-tempat ini (ada beberapa lagi) adalah inisialisasi dan bagian akhir. Mereka dipanggil dari withing DllMain (). di sini di baris 27 adalah fungsi RTL yang akan menangani sebagian besar panggilan DllMain () (tidak langsung disebut DllMain (), masih ada sedikit lebih banyak sihir kompiler yang melilitnya)
    http://svn.freepascal.org/cgi-bin/vi...nc?view=markupbagian inisialisasi dan finalisasi dipanggil dari suatu tempat di dalam prosedur PascalMain dan FPC_Do_Exit yang disebut di sana. Seperti yang Anda lihat, ada beberapa tempat yang lebih memungkinkan untuk dihubungkan dengan menetapkan variabel prosedur tertentu yang disebut di sana. Ini semua benar-benar hal-hal hardcore di dalam perpustakaan runtime yang hanya dimaksudkan untuk dipahami oleh orang-orang yang meretas kompilator dan RTL itu sendiri. Jika Anda mengunduh sumber-sumber ini dan mencoba untuk mengikuti semua panggilan ini untuk melihat apa yang sedang terjadi (atau melangkah melaluinya dengan debugger), Anda akan menemukan bahwa itu sebenarnya cukup dipenuhi dan banyak hal yang terjadi di bawah kap untuk membuat program Pascal identik (atau perpustakaan) dikompilasi dan dijalankan dengan mudah pada berbagai macam arsitektur dan sistem operasi. Pengguna normal (programmer) hanya menggunakan bagian inisialisasi dan finalisasi (jika mereka membutuhkannya atau meninggalkannya) (dan mungkin beberapa fungsi hook lainnya sebagaimana didokumentasikan) dan tidak khawatir tentang semua ini dan semuanya harus bekerja. Tetapi masih menarik untuk melihat kode ini dan setidaknya mencoba untuk memahaminya (sejauh ini saya hanya mengerti sebagian darinya, tetapi saya bukan salah satu dari peretas kompiler, jadi saya tidak perlu mengetahui semuanya).

  9. #9

    Quote Originally Posted by ;
    Memuat DLL di DllMain adalah ide yang sangat buruk:
    http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx
    karena ini dapat membuat loop dependensi dalam urutan pembebanan DLL. Dalam kasus sederhana ini (python binding saya) masalah ini tidak dapat muncul. Tapi memang benar bahwa kehati-hatian diperlukan dan hanya hal-hal sederhana dan mandiri yang dilakukan di dalam DllMain () karena pada akhirnya itu adalah sistem operasi yang memanggil fungsi ini dan tidak mudah untuk bergantung pada urutan yang tepat di mana mereka disebut dalam situasi yang kompleks atau pada waktu kapan tepatnya mereka dipanggil.

  10. #10
    Terima kasih info yang sangat membantu.

Similar Threads

  1. Fib pada aplikasi IB?
    By angksd98 in forum Pialang Forex
    Balasan: 1
    Postingan Terakhir: 11-17-2022 23:06, 11:06 PM
  2. Aplikasi jam berdentang
    By sadnu in forum Pembicaran Bitcoin dan Mata Uang Kripto
    Balasan: 2
    Postingan Terakhir: 12-17-2021 14:31, 02:31 PM
  3. Berapa banyak parameter yang terlalu banyak?
    By Gaubokcomgte in forum Pertanyaan Newbie
    Balasan: 0
    Postingan Terakhir: 07-11-2016 04:16, 04:16 AM
  4. Berapa banyak parameter yang terlalu banyak?
    By Gaubokcomgte in forum Pembicaran Bitcoin dan Mata Uang Kripto
    Balasan: 0
    Postingan Terakhir: 07-11-2016 04:16, 04:16 AM
  5. Cot - Laporkan dalam aplikasi ke Forex
    By Beeea in forum Diskus Forex Umum
    Balasan: 0
    Postingan Terakhir: 03-27-2006 00:16, 12:16 AM

Izin Posting

  • Anda tidak boleh memposting thread baru
  • Anda tidak boleh memposting balasan
  • Anda tidak boleh memposting lampiran
  • Anda tidak boleh menyunting postingan Anda
  •  
  • Kode BB Aktif
  • Smilies Aktif
  • Kode [IMG] Aktif
  • Kode [VIDEO] Aktif
  • Kode HTML tidak aktif
This website uses cookies
We use cookies to store session information to facilitate remembering your login information, to allow you to save website preferences, to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners.