ايران ويج

نسخه‌ی کامل: CoInitialize و CoUninitialize
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با سلام میشه بگید دستور CoInitialize و CoUninitialize چه کاری انجام میدن؟

کد:
try
CoInitialize(nil);
try

finally
CoUninitialize;
end;
except
on E:Exception do
Begin
Writeln(E.Classname, ': ', E.Message);

End;
end;
با تشکر
اینها توابع استفاده از توابع کتابخانه com یا همون اکتیوایکسها میباشد

CoInitialize یک کتابخانه com رو در ترد جاری برنامه مقدار دهی اولیه initial میکنه البته برای برنامه های مولتی ترد باید از CoInitializeEx استفاده کنید

CoUninitialize هم کتابخانه اجرا شده در ترد جاری را میبندد
میشه با یک مثال بیشتر توضیح بدی لطفا :-)
کد:
uses SysUtils, ActiveX, XMLintf, XMLDoc;

procedure DoSomething;
var
  Document: IXMLDocument;
begin
  Document := TXMLDocument.Create('foo.xml');
end;

begin
  CoInitialize(nil);
  DoSomething;
  CoUninitialize;
end.
مبین یه یونیت واسه جایگزینی classes واسه دلفی 7 سراغ نداری؟
TStringList,MemoryStream رو میخوام فراخوانی کنم اما Classes حجم رو خیلی خروجی رو خیلی بالا میبره دستی هم خواستم جدا کنم 1 ساعت وقت گرفت آخرش هم بیخیال شدم
خب واسه tmemorystream میتونی با استفاده از توابع Createfile-openfile-readfile توابع api اونو پیاده کنی رو نت پیاده سازی شدش زیاد هست
ولی واسه Tstringlist یه کم دردسر داره تازه چیز خاصی هم ندیدم مگه اینکه یک ارایه رو تو یه کلاس کپسوله کنی و باقی قضایا
اونجوری میتونم اما اعصابش رو ندارم خیلی وقت میبرهیه چیز کم حجم و آماده میخوام که سریع کارمو راه بندازه اذیتمم نکنه
از یونیتهای
Erazer نوشته استفاده کن