خطأ في تطبيق Delphi مع OLE في DLL
سؤال
لدي كائن 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
.