اکسترکت کردن فایل Rar در سی شارپ

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
سلام
توی سی شارپ چجوری میشه فایل Rar رو اکسترکت کرد؟ فایل zip منظورم نیست
یعنی کتابخونه و یا کلاس خوب برای این کار چیه؟
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
خود rarlab کتابخونه UnRAR.dll داره.
WinRAR and RAR archiver addons

سلام
ممنون آقا علی
منظورتون این فایل هست؟ :

http://www.rarlab.com/rar/UnRARDLL.exe

دانلود کردم و یه فایل بنام UnRar.dll هست که میخوام به پروژه ام reference کنم ولی ارور زیر رو میقع browse میده :

wq4ffk0gpjkb.jpg


دلیل اش چیه؟
بعد اینکه داخل پوشه ی Examples\C# اش ، فایل Unrar.sln برام اجرا نمیشه!
 

the_king

مدیرکل انجمن
سلام
ممنون آقا علی
منظورتون این فایل هست؟ :

http://www.rarlab.com/rar/UnRARDLL.exe

دانلود کردم و یه فایل بنام UnRar.dll هست که میخوام به پروژه ام reference کنم ولی ارور زیر رو میقع browse میده :

wq4ffk0gpjkb.jpg


دلیل اش چیه؟
بعد اینکه داخل پوشه ی Examples\C# اش ، فایل Unrar.sln برام اجرا نمیشه!

sln رو نمیدونم چرا اجرا نمیشه اما Unrar.dll کتابخانه معمولی با توابع stdcall ئه، اطلاعاتی نداره که بخواهید در پروژه تون بهش Reference بدهید.
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
sln رو نمیدونم چرا اجرا نمیشه اما Unrar.dll کتابخانه معمولی با توابع stdcall ئه، اطلاعاتی نداره که بخواهید در پروژه تون بهش Reference بدهید.

الان یعنی این dll که stdcall هست رو باید بالاخره reference کنم یا یه چیز دیگه رو باید reference کنم؟
من بلد نیستم یه dll stdcall رو توی سی شارپ ریفرنس کنم
یه کم بیشتر راهنمایی میکنین؟
این dll بصورت دات نت الان قابلیت فراخونی توی زبان های غیر دات نت رو داره؟
 

the_king

مدیرکل انجمن

الان یعنی این dll که stdcall هست رو باید بالاخره reference کنم یا یه چیز دیگه رو باید reference کنم؟
من بلد نیستم یه dll stdcall رو توی سی شارپ ریفرنس کنم
یه کم بیشتر راهنمایی میکنین؟

روال کلی اینطوری ئه پروتوتایپ دونه دونه توابع نوشته میشه و قبلش صفت DllImport میاد.
کد:
		[DllImport("UNRAR.DLL")]
		private static extern IntPtr RAROpenArchiveEx(ref RAROpenArchiveDataEx archiveData);

		[DllImport("unrar.dll")]
		private static extern int RARCloseArchive(IntPtr hArcData);
.
.
.

نمونه اش همون فایل Unrar.cs ئه، در واقع برای Unrar.dll لازم نیست خودتون چیزی بنویسید، قبلا نوشته شده، شما فقط همون Unrar.cs رو توی پروژه تون بکار می برید.


این dll بصورت دات نت الان قابلیت فراخونی توی زبان های غیر دات نت رو داره؟
بله، البته الزاما نه همه زبان ها.
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
روال کلی اینطوری ئه پروتوتایپ دونه دونه توابع نوشته میشه و قبلش صفت DllImport میاد.
کد:
        [DllImport("UNRAR.DLL")]
        private static extern IntPtr RAROpenArchiveEx(ref RAROpenArchiveDataEx archiveData);

        [DllImport("unrar.dll")]
        private static extern int RARCloseArchive(IntPtr hArcData);
.
.
.

نمونه اش همون فایل Unrar.cs ئه، در واقع برای Unrar.dll لازم نیست خودتون چیزی بنویسید، قبلا نوشته شده، شما فقط همون Unrar.cs رو توی پروژه تون بکار می برید.


بله، البته الزاما نه همه زبان ها.

ممنون آقا علی
الان در این توابع ، تابع
RAROpenArchiveEx میتونه فایل رو اکسترکت کنه؟
کدوم شون هم فایل رار جدید میسازن؟
اکسترکت برام مهمتره
مثل کار کردن با file i\o ها ، اول باید فایل مون رو با RAROpenArchiveEx باز و سر آخر با RARCloseArchive ببندیم؟
در استراکچر RAROpenArchiveDataEx ، اعضایی که ستاره دارن حتما باید مقداردهی بشن؟ یا همه حتما لازم هست مقداردهی بشن؟ من بعضی از اعضا رو نمیدونم چی هست
 
آخرین ویرایش:

the_king

مدیرکل انجمن
ممنون آقا علی
الان در این توابع ، تابع
RAROpenArchiveEx میتونه فایل رو اکسترکت کنه؟
کدوم شون هم فایل رار جدید میسازن؟
اکسترکت برام مهمتره
مثل کار کردن با file i\o ها ، اول باید فایل مون رو با RAROpenArchiveEx باز و سر آخر با RARCloseArchive ببندیم؟
در استراکچر RAROpenArchiveDataEx ، اعضایی که ستاره دارن حتما باید مقداردهی بشن؟ یا همه حتما لازم هست مقداردهی بشن؟ من بعضی از اعضا رو نمیدونم چی هست
باید راهنمای کتابخانه رو که در پوشه Documentation ئه مطالعه کنید، کلا با هر کتابخانه ای بخواهید کار کنید باید راهنما شو مطالعه کنید، دقیق و با حوصله.
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
روال کلی اینطوری ئه پروتوتایپ دونه دونه توابع نوشته میشه و قبلش صفت DllImport میاد.
کد:
        [DllImport("UNRAR.DLL")]
        private static extern IntPtr RAROpenArchiveEx(ref RAROpenArchiveDataEx archiveData);

        [DllImport("unrar.dll")]
        private static extern int RARCloseArchive(IntPtr hArcData);
.
.
.

نمونه اش همون فایل Unrar.cs ئه، در واقع برای Unrar.dll لازم نیست خودتون چیزی بنویسید، قبلا نوشته شده، شما فقط همون Unrar.cs رو توی پروژه تون بکار می برید.


بله، البته الزاما نه همه زبان ها.

من الان متوجه نشدم
نیاز به ریفرنس اضافه کردن dll نیست؟
فقط از همین کدها باید استفاده کنم؟
ضمن اینکه توی استراکچرش ، اشاره گر داره که تا جایی که میدونم ، سی شارپ اشاره گر رو ساپورت نمیکنه!

اگه یه مثال کوتاه یا یه پروژه ی کوچیک از اکسترکت میزدین تا کدهاشو تجزیه و تحلیل کنم که عالی میشد
 

the_king

مدیرکل انجمن
من الان متوجه نشدم
نیاز به ریفرنس اضافه کردن dll نیست؟
فقط از همین کدها باید استفاده کنم؟
ضمن اینکه توی استراکچرش ، اشاره گر داره که تا جایی که میدونم ، سی شارپ اشاره گر رو ساپورت نمیکنه!

اگه یه مثال کوتاه یا یه پروژه ی کوچیک از اکسترکت میزدین تا کدهاشو تجزیه و تحلیل کنم که عالی میشد
مساله نیاز نیست که بگید نیاز بوده یا نبوده، عرض کردم اطلاعاتی توی فایل نیست که بهشون رفرنس داده بشه، کتابخانه ای که بهش رفرنس داده میشه اطلاعات توابع و ساختار های داده ای داخلش هست. رفرنس به
کتابخانه ای که همچین اطلاعاتی رو نداره عملی نیست، تو هیچ زبانی.

در NET. معمولا برای متغیر اشاره گر از نوع داده IntPtr استفاده میشه همونطور که در Unrar.cs هم هست.
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
مساله نیاز نیست که بگید نیاز بوده یا نبوده، عرض کردم اطلاعاتی توی فایل نیست که بهشون رفرنس داده بشه، کتابخانه ای که بهش رفرنس داده میشه اطلاعات توابع و ساختار های داده ای داخلش هست. رفرنس به
کتابخانه ای که همچین اطلاعاتی رو نداره عملی نیست، تو هیچ زبانی.

در NET. معمولا برای متغیر اشاره گر از نوع داده IntPtr استفاده میشه همونطور که در Unrar.cs هم هست.


ممنون استاد علی
ولی من بازم چیزی متوجه نشدم
کلا انگار کار کردن با این سخته برام .
یه دونه فایل dll دیگه پیدا کردم بنام NUnrar که فقط نمیدونم کدوم متدش کار اکسترکت رو انجام میده (چون چندین فضای نام و چندین کلاس با تعداد زیادی متد داره) :


http://nunrar.codeplex.com/releases

البته یکی دیگه هم بنام SharpCompress پیدا کردم که نمیدونم کدوم راحت تره :

https://sharpcompress.codeplex.com/

یه راهنمایی ای میکنین و نام متدی که کار اکسترکت میکنه رو بهم میگین از یکی از دو فایل dll بالا؟ (چون نام متدها خیلی شبیه هم هستن)
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
خدا رو شکر بازم موفق شدم و بازم وعده ی خدا تحقق پیدا کرد :)
ممنون استاد علی :rose:

ولی با NUnrar انجام دادم (فایل NUnrar.dll) :

https://nunrar.codeplex.com/

ولی کدشو از توی این تقلید کردم :

http://stackoverflow.com/questions/13087751/unrar-file-with-subdirectory

اما چند چیز رو نفهمیدم. اینکه چرا متد Open رو توی کلاس RarArchive گذاشتن ولی متد اکسترکت رو که همون WriteToFile هست رو توی کلاس دیگه ای بنام RarArchiveEntry ؟ یعنی چرا هر دو متد که به هم وابسته هست رو توی یه کلاس نزاشتن؟ و کلا کلاس RarArchiveEntry رو نفهمیدم چه کارهایی انجام میده
مهم تر از همه اینکه پروپرتی Entries در کلاس RarArchive ، کلاس RarArchiveEntry رو برمیگردونه . خوب در این صورت باید کد زیر درست باشه دیگه :

کد:
            RarArchive myArchive = RarArchive.Open(@"C:\Users\SoomSaj\Desktop\New folder\01_Simulation&Export.rar");
            RarArchiveEntry myEntery = myArchive.Entries;

ولی نمیدونم چرا اشتباه میگه هست!! باید حتما توی حلقه ی foreach بکار بره تا جواب بده! دلیل شو استاد علی اگه بگین ممنون میشم :rose: با اینکه اگه پسورد فایل رار رو بخوام بدم برای اکسترکت ، توی آرگومان کدوم تابع باید بدم؟ چک کردم چند آرگومان توابع و کلاس های مختلف رو ، همچین گزینه ای نبود!
و مجبور شدم کدم رو اینجوری تغییر بدم تا عمل کنه (ولی دلیل شو هنوز نمیدونم) :

کد:
            RarArchive myArchive = RarArchive.Open(@"C:\Users\SoomSaj\Desktop\New folder\01_Simulation&Export.rar");
            foreach (RarArchiveEntry item in myArchive.Entries)
            {
                item.WriteToFile(@"C:\Users\SoomSaj\Desktop\New folder\extracted.wmv");
            }

راهنماشم توضیح نداره برای هر متد و ... ، یه کم کار رو مشکل کرد ولی کار کردن با متدها و ... اش آسونه
 
آخرین ویرایش:

the_king

مدیرکل انجمن
بجز UnRAR.dll که کتابخانه کامل سازنده rar ئه و امتحان اش رو سالها پس داده بقیه کتابخانه ها ممکنه ناقص و امکانات محدودی داشته باشند.
اینکه یک نویسنده چرا کدش رو اینطوری یا اونطوری می نویسه مربوط به تفکر خودشه، معماری کلاس ها چیزی نیست که یک قاعده و اصول ثابت داشته باشه.
Entries از اسمش هم معلومه، جمع Entry ئه، یک مجموعه ای از Entry ها است، یک دونه Entry نیست. وقتی می خواهید کل مجموعه رو به یک RarArchiveEntry تخصیص دهید خطا میده.
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
بجز UnRAR.dll که کتابخانه کامل سازنده rar ئه و امتحان اش رو سالها پس داده بقیه کتابخانه ها ممکنه ناقص و امکانات محدودی داشته باشند.
اینکه یک نویسنده چرا کدش رو اینطوری یا اونطوری می نویسه مربوط به تفکر خودشه، معماری کلاس ها چیزی نیست که یک قاعده و اصول ثابت داشته باشه.
Entries از اسمش هم معلومه، جمع Entry ئه، یک مجموعه ای از Entry ها است، یک دونه Entry نیست. وقتی می خواهید کل مجموعه رو به یک RarArchiveEntry تخصیص دهید خطا میده.

ممنون
من اصلا نمیدونم Entery چیه و کلا کارش چیه توی هر کلاسی!
شما فقط UnRar رو میشناسین؟ با چیز دیگه ای کار نکردین که معرفی کنین؟
یه پروژه ی ساده ازش دم دستتون نیست؟ چون من بلد نیستم با کدی که دادین چجوری فایل dll شو پیوست کنم . با اشاره گرها هم بلد نیستم کار کنم . از طرفی هم شما میگین این dll خالی هه که اصلا چیزی متوجه نشدم !

 

the_king

مدیرکل انجمن
ممنون
من اصلا نمیدونم Entery چیه و کلا کارش چیه توی هر کلاسی!
شما فقط UnRar رو میشناسین؟ با چیز دیگه ای کار نکردین که معرفی کنین؟
یه پروژه ی ساده ازش دم دستتون نیست؟ چون من بلد نیستم با کدی که دادین چجوری فایل dll شو پیوست کنم . با اشاره گرها هم بلد نیستم کار کنم . از طرفی هم شما میگین این dll خالی هه که اصلا چیزی متوجه نشدم !

مشکل شما اینه که حوصله برنامه نویسی ندارید ولی می خواهید همینطوری در عرض چند ساعت یک پروژه بزرگ رو تموم کنید.
تا زمانی که برای کاری زمان صرف نکنید به نتیجه نمی رسید. اگه کد UnrarTest.cs رو بررسی می کردید متوجه می شدید که کاری با اشاره گر نداره.
شما اشاره گر رو برای چه کاری لازم دارید؟ کد extractButton_Click رو ببینید، از این ساده تر؟ خلاصه اش چند سطر بیشتر نیست :
کد:
                    var unrar=new Unrar();
                    unrar.DestinationPath=folderBrowser.SelectedPath;
                    unrar.Open(rarFileName.Text, Unrar.OpenMode.Extract);
                    while(unrar.ReadHeader())
                    {
                            unrar.Extract();
                    }
                    unrar.Close();

کمپوننت ای که rar رو از حالت فشرده خارج کنه زیاده اما به نظر من unrar.dll کاملا مناسب ئه. دقیقا به این دلیل که سازنده اش سازنده WinRar ئه.
هم روال کارش ساده است و هم تمامی امکانات موجود برای فایل های rar رو داره.
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
روال کلی اینطوری ئه پروتوتایپ دونه دونه توابع نوشته میشه و قبلش صفت DllImport میاد.
کد:
        [DllImport("UNRAR.DLL")]
        private static extern IntPtr RAROpenArchiveEx(ref RAROpenArchiveDataEx archiveData);

        [DllImport("unrar.dll")]
        private static extern int RARCloseArchive(IntPtr hArcData);
.
.
.

نمونه اش همون فایل Unrar.cs ئه، در واقع برای Unrar.dll لازم نیست خودتون چیزی بنویسید، قبلا نوشته شده، شما فقط همون Unrar.cs رو توی پروژه تون بکار می برید.


بله، البته الزاما نه همه زبان ها.


مشکل شما اینه که حوصله برنامه نویسی ندارید ولی می خواهید همینطوری در عرض چند ساعت یک پروژه بزرگ رو تموم کنید.
تا زمانی که برای کاری زمان صرف نکنید به نتیجه نمی رسید. اگه کد UnrarTest.cs رو بررسی می کردید متوجه می شدید که کاری با اشاره گر نداره.
شما اشاره گر رو برای چه کاری لازم دارید؟ کد extractButton_Click رو ببینید، از این ساده تر؟ خلاصه اش چند سطر بیشتر نیست :
کد:
                    var unrar=new Unrar();
                    unrar.DestinationPath=folderBrowser.SelectedPath;
                    unrar.Open(rarFileName.Text, Unrar.OpenMode.Extract);
                    while(unrar.ReadHeader())
                    {
                            unrar.Extract();
                    }
                    unrar.Close();

کمپوننت ای که rar رو از حالت فشرده خارج کنه زیاده اما به نظر من unrar.dll کاملا مناسب ئه. دقیقا به این دلیل که سازنده اش سازنده WinRar ئه.
هم روال کارش ساده است و هم تمامی امکانات موجود برای فایل های rar رو داره.


الان مشکل من اینه که بلد نیستم با کدی که در پست اول (بالا) نقل قول کردم ، دادین ، فایل Unrar.dll رو using کنم! . بصورت عادی هم که add reference نمیشه! شما هم که میگید این dll خالی هه.
بالاخره باید برای استفاده از کلاس Unrar فایل dll رو پیوست بدیم یا نه! همینجوری که نمیفهمه کلاس Unrar کجاست!
کد پست دوم هم که دادین متوجه شدم . هر چند سئوالاتی دارم ولی تا نتونم اون فایل dll رو پیوست کنم ، مشکلم حل نمیشه و از هیچ کدی نمیتونم استفاده کنم!
والا تمرکز اصلیم رو گذاشتم روی آموزش لوا و اتوپلی واسه همین بین سی شارپ و لوا هی سوئیچ میکنم که توی آموزش ها از هر دو (ارتباط هر دو) گفته شه . یه نمونه ی پر کاربرد هم همین ساخت فایل rar هه . ولی نه اینکه خیلی کم وقت صرف کرده باشم برای ساخت فایل رار . دنبال چندین پلاگین گشتم و تست کردم و همونطور که مشخص هست با راهنمایی شما و سایت های دیگه ، از NUnrar بهره بردم ولی کامل نیست! از Unrar هم که فعلا پیوست اش انگار سئوال اصلی منه که چجوری به پروژه پیوست بدم؟!
ممنون
 

the_king

مدیرکل انجمن
الان مشکل من اینه که بلد نیستم با کدی که در پست اول (بالا) نقل قول کردم ، دادین ، فایل Unrar.dll رو using کنم! . بصورت عادی هم که add reference نمیشه! شما هم که میگید این dll خالی هه.
بالاخره باید برای استفاده از کلاس Unrar فایل dll رو پیوست بدیم یا نه! همینجوری که نمیفهمه کلاس Unrar کجاست!
کد پست دوم هم که دادین متوجه شدم . هر چند سئوالاتی دارم ولی تا نتونم اون فایل dll رو پیوست کنم ، مشکلم حل نمیشه و از هیچ کدی نمیتونم استفاده کنم!
والا تمرکز اصلیم رو گذاشتم روی آموزش لوا و اتوپلی واسه همین بین سی شارپ و لوا هی سوئیچ میکنم که توی آموزش ها از هر دو (ارتباط هر دو) گفته شه . یه نمونه ی پر کاربرد هم همین ساخت فایل rar هه . ولی نه اینکه خیلی کم وقت صرف کرده باشم برای ساخت فایل رار . دنبال چندین پلاگین گشتم و تست کردم و همونطور که مشخص هست با راهنمایی شما و سایت های دیگه ، از NUnrar بهره بردم ولی کامل نیست! از Unrar هم که فعلا پیوست اش انگار سئوال اصلی منه که چجوری به پروژه پیوست بدم؟!
ممنون
using برای namespace ئه که کتابخانه های dll معمولی که به زبان های تحت NET. نوشته نشده اند و اطلاعات assembly ندارند کاربردی نداره.
من کی گفتم خالی ئه؟ اینکه dll اطلاعات توابع رو نداره به این معنا نیست که خالی ئه، وجود این اطلاعات داخل فایل کمک می کنه که کامپایلر پروتوتایپ توابع رو تشخیص بده.

قبلا عرض کردم، باز هم حرف ام تغییر نکرده و همونه، شما فقط فایل unrar.cs رو در پروژه تون بکار می برید، از add reference استفاده نمی کنید.
همونطور که قبلا با نمونه کد مثال زدم در اون فایل unrar.cs همچین سطر هایی هست که صفت DllImport داره و مشخص کرده که در فایل unrar.dll همچین متدی
با این مشخصات و انواع داده ای هست و وقتی این متد ها رو فراخوانی می کنید میره از داخل فایل dll که کنار فایل اجرایی پروژه تون یا در یک مسیر پیشفرض سیستم
مثل C:\Winows\System32 ئه فراخوانی و اجرا اش می کنه. در همه زبان ها بخواهید از یک فایل dll کتابخانه با توابع stdcall استفاده کنید همینطوره.
کد:
		[DllImport("UNRAR.DLL")]
		private static extern IntPtr RAROpenArchiveEx(ref RAROpenArchiveDataEx archiveData);

		[DllImport("unrar.dll")]
		private static extern int RARCloseArchive(IntPtr hArcData);
.
.
.
اینها تنها اطلاعاتی ئه که برای فراخوانی توابع dll کامپایلر بهشون احتیاج داره.

محتویات فایل Unrar.cs رو در پروژه تون در یک فایل جدید cs جایگزین کنید یا خود فایل رو منوی Project با Add Existing Item اضافه کنید، در صورت لزوم namespace اش که Schematrix هست رو به namespace ئه پروژه تون تغییر بدید که نیازی
به using Schematrix نباشه.
فایل unrar.dll رو هم در پروژه خودتون یا مستقیما در پوشه کنار فایل اجرایی کامپایل شده پروژه تون کپی کنید (کار اصولی ای نیست) و یا در منوی Project با Add Existing Item به پروژه اضافه کنید و بعد در پنجره Properties برای اون
فایل unrar.dll که به Solution Explorer اضافه شده، مشخصه Copy to Output Directory رو copy if newer کنید تا خودش موقع کامپایل پروژه بصورت خودکار کنار فایل اجرایی پروژه تون قرارش بده (کار اصولی اینه)
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
using برای namespace ئه که کتابخانه های dll معمولی که به زبان های تحت NET. نوشته نشده اند و اطلاعات assembly ندارند کاربردی نداره.
من کی گفتم خالی ئه؟ اینکه dll اطلاعات توابع رو نداره به این معنا نیست که خالی ئه، وجود این اطلاعات داخل فایل کمک می کنه که کامپایلر پروتوتایپ توابع رو تشخیص بده.

قبلا عرض کردم، باز هم حرف ام تغییر نکرده و همونه، شما فقط فایل unrar.cs رو در پروژه تون بکار می برید، از add reference استفاده نمی کنید.
همونطور که قبلا با نمونه کد مثال زدم در اون فایل unrar.cs همچین سطر هایی هست که صفت DllImport داره و مشخص کرده که در فایل unrar.dll همچین متدی
با این مشخصات و انواع داده ای هست و وقتی این متد ها رو فراخوانی می کنید میره از داخل فایل dll که کنار فایل اجرایی پروژه تون یا در یک مسیر پیشفرض سیستم
مثل C:\Winows\System32 ئه فراخوانی و اجرا اش می کنه. در همه زبان ها بخواهید از یک فایل dll کتابخانه با توابع stdcall استفاده کنید همینطوره.
کد:
        [DllImport("UNRAR.DLL")]
        private static extern IntPtr RAROpenArchiveEx(ref RAROpenArchiveDataEx archiveData);

        [DllImport("unrar.dll")]
        private static extern int RARCloseArchive(IntPtr hArcData);
.
.
.
اینها تنها اطلاعاتی ئه که برای فراخوانی توابع dll کامپایلر بهشون احتیاج داره.

محتویات فایل Unrar.cs رو در پروژه تون در یک فایل جدید cs جایگزین کنید یا خود فایل رو منوی Project با Add Existing Item اضافه کنید، در صورت لزوم namespace اش که Schematrix هست رو به namespace ئه پروژه تون تغییر بدید که نیازی
به using Schematrix نباشه.
فایل unrar.dll رو هم در پروژه خودتون یا مستقیما در پوشه کنار فایل اجرایی کامپایل شده پروژه تون کپی کنید (کار اصولی ای نیست) و یا در منوی Project با Add Existing Item به پروژه اضافه کنید و بعد در پنجره Properties برای اون
فایل unrar.dll که به Solution Explorer اضافه شده، مشخصه Copy to Output Directory رو copy if newer کنید تا خودش موقع کامپایل پروژه بصورت خودکار کنار فایل اجرایی پروژه تون قرارش بده (کار اصولی اینه)


سلام
ممنون
ولی این کار رو کردم ، 10000 تا خط قرمز اومد برای هر خط :


j91whxouwnzc.jpg
 

جدیدترین ارسال ها

بالا