سؤال

لدي كائن com ، إعداد/إنشاء/العمل من datamodule.

إنشاء/تشغيل/تحرير Datamodule من التطبيق يعمل دون مشكلة.

لكن وضع Datamodule في DLL يعمل بشكل جيد في المرة الأولى ، وتشغيل كائن COM وما إلى ذلك .. ولكن بعد بضع مكالمات بدون إعادة تشغيل التطبيق ، يظهر هذا الخطأ.

رسالة خطأ صورة http://darkaxi0m.name/so/errormessage.gif

يوجد جزء من الكود في التطبيق ، لذلك لا يمكنني نشر كل شيء ، لقد جربت Madexcept في كل من التطبيق و DLL ، دون حظ. تنكسر IDE عند نقطة لا يبدو الكثير من المساعدة ...

alt text http://darkaxi0m.name/so/CpubReak.gif

هذا هو الرمز الذي يتولى datamodule ، يتم استخدام نفس الوظيفة في التطبيق و DLL في كلا الاختبارين

function GetAmount( Amount : integer; var Info: PChar): integer; stdcall;
 var
  tempInfo: string;
   workerDM : TworkerDM;
 begin
  Result := 0;    
  workerDM := TworkerDM.Create(nil);
    try      
      tempInfo:= Info;
      Result := workerDM.GetAmount(Amount, tempInfo);
      StrPCopy(Info, tempInfo);
    finally
      workerDM.Free;
    end;
 end;

أود إلقاء اللوم على كائن OLE ، لكنه يعمل بشكل جيد من DLL

أنا في حيرة من أمره حتى أفكر في مكان البدء في البحث.

هل كانت مفيدة؟

المحلول 2

لا أعتقد أن هذا السؤال يمكن الإجابة عليه بعد الآن. تم كشط المشروع ، والكائن الذي ينتج الخطأ لم يعد يستخدم.

لي حذف لقد ذهبت الطلبات دون إجابة.

لذلك هذا هو إجابتي الآن.

نصائح أخرى

في ال finally, ، انت تتصل Free, ، ولكن يجب الاتصال workerDM.Free.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top