MT4: ข้อผิดพลาดในการนำเข้า catch dll
Results 1 to 9 of 9

Thread: MT4: ข้อผิดพลาดในการนำเข้า catch dll

  1. #1
    สวัสดี,

    แค่คำถามเล็ก ๆ น้อย ๆ คุณอาจจะรู้

    ถ้าฉันมีบางอย่างในไฟล์ส่วนหัว mqh

    รหัส PHP: <code><span style=”color: #000000”> <span style=”color: #0000BB”></span><span style=”color: #FF8000”>#import”xxx.dll”
    </span><span style=”color: #0000BB”>เป็นโมฆะ</span><span style=”color: #007700”>();
    </span><span style= ”color: #FF8000”>#import
    </span><span style=”color: #0000BB”></span> </span> </code> และ xxx.dll ไม่พบฉัน รับข้อผิดพลาดในบันทึก:

    ไม่สามารถโหลดไลบรารี 'xxx.dll' (ข้อผิดพลาด 126)

    มีใครรู้วิธีง่ายๆ ในการแสดงข้อผิดพลาดดังกล่าวด้วย Alert หรือ MessageBox แทนที่จะเขียนลงในไฟล์บันทึกเท่านั้น


    ขอบคุณ

  2. #2
    ฉันมีปัญหาเดียวกันในบัญชีทดลองกับ EA Indior เมื่อฉันตรวจสอบผู้เชี่ยวชาญฉันได้รับข้อผิดพลาดไม่สามารถโหลด xxxx .dll (126) มีใครคิดว่าพวกเขาสามารถแก้ไขปัญหานี้ได้โดยเสียค่าธรรมเนียมเล็กน้อยหรือไม่? ฉันมีสิทธิ์เข้าถึงซอร์สโค้ดของ EA Indior เนื่องจากไฟล์เป็น mql4 แต่ไม่ใช่ dll

  3. #3

    Quote Originally Posted by ;
    แม้ว่าฉันจะต้องชี้ให้เห็นว่า MT4 ไม่สามารถพึ่งพาได้เพื่อให้จัดการ Dll ทั้งหมดฟรีเมื่อ EA ดำเนินการเสร็จสิ้น
    ข้อผิดพลาดนี้เกิดขึ้นเมื่อเรียกใช้ EA ในเครื่องทดสอบ egy เท่านั้น มันลืม FreeLibrary() dll ที่โหลดด้วย #import หลังจากการทดสอบ egy สิ้นสุดลง การทำงานของผู้ทดสอบแต่ละครั้งจะทำให้จำนวนการอ้างอิงเพิ่มขึ้นหนึ่งรายการ อาจเป็นไปได้ที่จะแก้ไขปัญหานี้ใน deinit() ด้วย IsTesting() และ FreeLibrary() ด้วยตนเองอีกครั้ง ในระหว่างการดำเนินการปกติ (บนแผนภูมิสด) มันจะว่างสิ่งที่โหลด (ด้วย #import) อย่างถูกต้องเสมอ ทั้งหมดข้างต้นหมายถึง #import เท่านั้น หากคุณมี LoadLibrary() เพิ่มเติมในโค้ดของคุณ แน่นอนว่าคุณยังคงต้องการการโทรไปยัง FreeLibrary() ในจำนวนที่เท่ากัน

  4. #4
    ขอบคุณมาก: ฉันจะลองทำดู

  5. #5
    โด๊ะ!
    แน่นอนว่าฟังก์ชัน IsDllsAllowed() ครอบคลุมปัญหาเล็กน้อยนั้น!

  6. #6
    ไม่มีปัญหา. ฉันไม่แน่ใจว่าจะเกิดอะไรขึ้นหากไม่ได้เลือกช่อง Allow DLL Calls ฉันคิดว่าการเรียก LoadLibrary() จะส่งคืน 0 แม้ว่าจะมีไฟล์ DLL อยู่ก็ตาม หากเป็นกรณีนี้ คุณสามารถใช้ฟังก์ชัน WinAPI FileOpen() หรือ FindFirst() เพื่อดูว่ามีไฟล์ DLL อยู่หรือไม่ โดยอนุญาตให้คุณ 'Alert' ทั้งสองกรณี: 1) DLL มีอยู่แต่ไม่สามารถเปิดได้ - แนะนำ ยกเลิกการเลือกอนุญาต DLLs 2) ไฟล์ DLL หายไป

  7. #7
    ไม่ต้องทำงานเล็ก ๆ น้อย ๆ ของคุณเอง ... ลอง LoadLibrary FreeLibrary ที่พบใน Kernel32.dll ดังนั้นคุณจะทำสิ่งนี้ใน Init() int hmod = LoadLibrary(c:MT4LibraryDirxxx.dll); ถ้า (hmod != 0 ) FreeLibrary(hmod); การแจ้งเตือนอื่น (ไม่สามารถโหลด xxx.DLL); โปรดทราบว่าเราควรโหลด DLL ของเราให้ว่าง เนื่องจาก MT4 จะโหลดไว้แล้ว และ windows จะรักษาตัวนับจำนวนครั้งที่ DLL ถูกโหลดโดยอินสแตนซ์แอปพลิเคชัน หากคุณไม่เรียกโหลดไลบรารีฟรีของเรา MT4 จะไม่ปล่อย DLL Go เมื่อ EA สิ้นสุดลง แม้ว่าฉันจะต้องชี้ให้เห็นว่า MT4 ไม่สามารถพึ่งพาได้เพื่อให้จัดการ Dll ทั้งหมดฟรีเมื่อ EA เสร็จสมบูรณ์ แต่อย่างน้อยเราควรทำในสิ่งที่ควรทำ! แน่นอนว่านี่เป็นเพียงการรับประกันว่ามีไฟล์ DLL อยู่และเป็น DLL ที่ถูกต้องเท่านั้น แต่จะไม่รับประกันว่าฟังก์ชันที่กำหนดไว้ในคำสั่งการนำเข้าของคุณมีอยู่จริง เพื่อที่คุณควรใช้ฟังก์ชัน GetProcAddress() ดูเอกสาร MSDN ที่นี่
    http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx

  8. #8

    Quote Originally Posted by ;
    ไม่ต้องทำงานเล็ก ๆ น้อย ๆ ของคุณเอง ... ลอง LoadLibrary FreeLibrary ที่พบใน Kernel32.dll ดังนั้นคุณจะทำสิ่งนี้ใน Init() int hmod = LoadLibrary(c:MT4LibraryDirxxx.dll); ถ้า (hmod != 0 ) FreeLibrary(hmod); การแจ้งเตือนอื่น (ไม่สามารถโหลด xxx.DLL); โปรดทราบว่าเราควรโหลด DLL ของเราให้ว่าง เนื่องจาก MT4 จะโหลดไว้แล้ว และ windows จะรักษาตัวนับจำนวนครั้งที่ DLL ถูกโหลดโดยอินสแตนซ์แอปพลิเคชัน หากคุณไม่เรียกโหลดไลบรารีฟรีของเรา MT4 จะไม่ปล่อยให้ DLL ไปเมื่อ...
    ขอบคุณ rangebound!

  9. #9

    Quote Originally Posted by ;
    ฉันมีปัญหาเดียวกันในบัญชีทดลองกับ EA Indior เมื่อฉันตรวจสอบผู้เชี่ยวชาญฉันได้รับข้อผิดพลาดไม่สามารถโหลด xxxx .dll (126) มีใครคิดว่าพวกเขาสามารถแก้ไขปัญหานี้ได้โดยเสียค่าธรรมเนียมเล็กน้อยหรือไม่? ฉันมีสิทธิ์เข้าถึงซอร์สโค้ดของ EA Indior เนื่องจากไฟล์เป็น mql4 แต่ไม่ใช่ dll
    ฉันมีประสบการณ์ในการแก้ไขและได้ติดต่อคุณ

การขออนุญาตโพส

  • ห้ามโพสข้อความใหม่
  • ห้ามโพสตอบ
  • ห้ามแนบไฟล์
  • ห้ามแก้ไขโพส
  •  
  • รหัส BB เปิด
  • Smilies ปิด
  • รหัส [IMG] เปิด
  • รหัส [VIDEO] เปิด
  • รหัส HTML ปิด
นโยบาย Cookie
นโยบาย Cookie: เว็บไซต์ thaitradeforex มีการใช้ cookies และสำหรับการดำเนินการเยี่ยมชมเว็บไซต์ ท่านได้ยอมรับในสิ่งนี้ สำหรับข้อมูลเพิ่มเติมโปรดอ่าน 'Cookie Disclosure'.