PDA

View Full Version : سوال: نوشتن در dll _ خواندن از dll



tabatabaeefar
شنبه 24 مرداد 1388, 12:26 عصر
سلام
ميشه بگيد چطوري ميشه توي يك dll نوشت و از اون خوند؟
ممنون

mohammadi4net
شنبه 24 مرداد 1388, 13:03 عصر
داخل یک dll نمیشه نوشت بلکه می شه از توابع و یوزر کنترلهای داخل اون استفاده کرد
باید dll رو به رفرنس پروژه اضافه کنی

tabatabaeefar
شنبه 24 مرداد 1388, 13:29 عصر
راستش رو بخواهيد بايد بتونم يك رشته رو توي يه dll بنويسم.
آيا ميشه اون رو توي يكي از dll هاي خود ويندوز نوشت؟

hossein-khoshseyar
شنبه 24 مرداد 1388, 15:42 عصر
منظورت چیه که می گی می خوای یه رشته رو تو dll بنویسی ؟
تو می تونی از توابع داخل dll استفاده کنی و اگر این توابع نیاز به یه آرگومان ورودی رشته داشته باشه می تونی بهش بدی. حتی dll ویندوز
واضح بگو می خوای چیکار کنی تا راهنماییت کنیم

alimanam
شنبه 24 مرداد 1388, 16:53 عصر
داخل یک dll نمیشه نوشت بلکه می شه از توابع و یوزر کنترلهای داخل اون استفاده کرد
باید dll رو به رفرنس پروژه اضافه کنی

با عرض سلام خدمت تمامی دوستان

دوست عزیز لطفاً قبل از اونکه از چیزی مطمئن بشی بیانش نکنی !

و در جواب دوست عزیز دیگرمون که می خوان درون یک فایل dll به قول خودشون چیزی بنویسن این نمونه کد رو براشون نوشتم که مشکلشون حل بشه .

یا علی

tabatabaeefar
یک شنبه 25 مرداد 1388, 09:43 صبح
و در جواب دوست عزیز دیگرمون که می خوان درون یک فایل dll به قول خودشون چیزی بنویسن این نمونه کد رو براشون نوشتم که مشکلشون حل بشه .
یا علی
سلام
منظورم يه فايل text با پسوند dll نبود.
فايلي ميخام كه نشه راحت با NotePad بازش كرد (اسمبلي شده باشه).

ACorvinus
یک شنبه 25 مرداد 1388, 16:20 عصر
سلام دوست عزیز .

فایلهای dll فایلهایی هستند که داخلشون یک یا چند تابع یا روال نوشته میشه که هر تابع یا روال دارای حداقل یک خروجی می باشد .

وقتی یه فایل dll نوشته میشه دیگه نمیشه اونو ویرایش کرد و یا چیزی توی اون نوشت ولی با برنامه های Deassembler میشه یه dll رو باز کرد و کدهاشو دید .

برای نوشتن dll در دات نت میتونین به صورت زیر عمل کنین :

File --> New Project --> Class Library


موفق باشین .

#target
یک شنبه 25 مرداد 1388, 16:41 عصر
جناب alimanam
شما اول برو ببین dll چیه بعد پست بده
حاجی تو دیگه آخرشی بابا !!!

#target
یک شنبه 25 مرداد 1388, 17:05 عصر
البته نوشتن در دی ال ال غیر ممکن هم نیست
روش زیر روشی هست که می توانید در آن یک رشته را در یک dll ویرایش کنید .
برای اینکار
1- در حین ساختن dll مقادیری که می خواهید دستکاری کنید را بصورت رشته ایجاد کنید و آنها را با طول مورد نظر مقدار دهی کنید و dll را کامپایل کنید
2- dll را با یک Hex Editor مانند Notepad++ باز کرده در فایل بدنبال مقداری که با آن رشته را مقدار دهی کردید بیابید
3- مکان دقیق شروع و پایان رشته را بر حسب تعداد کاراکتر ( بایت ) از اول فایل بیابید . ( مثلا شروع کاراکتر 14009 و پایان کاراکتر 14015 در نتیجه طول آن 6 تا و احتمالا رشته شما طول 3 دارد )
4- در هنگام کار آن dll را بصورت فایل باینری ( راندوم ) با طول 1 باز کنید و با استفاده از دستورات خواندن و نوشتن در همان خانه از فایل که رشته شما هست (این خانه را در مرحله 2 و 3 بدست بیاورید ) بنویسید و بخوانید . کاراکتر به کاراکتر بنویسید و دقت کنید تعداد کاراکتر ها زیاد تر از تعداد کاراکتر های که شما برای اولین بار در حین برنامه نویسی مقدار دهی کردید نشود .

این روش یک روش غیر منطقی ولی تا حد زیادی شدنی است .

من همین روش را با ویژال بیسیک نوشتم در صفحه 2 همین تاپیک ضمیمه کردم . با تشکر

ACorvinus
یک شنبه 25 مرداد 1388, 17:16 عصر
دوست عزیز ما در مورد برنامه نویسی dll بحث می کنیم نه تغییر دستی dll .

متشکرم .

alimanam
دوشنبه 26 مرداد 1388, 21:25 عصر
سلام
منظورم يه فايل text با پسوند dll نبود.
فايلي ميخام كه نشه راحت با NotePad بازش كرد (اسمبلي شده باشه).

دوست عزیز سلام

هیچ فایلی رو سراغ ندارم که نشه با ویرایشگرهای متنی بازش نکرد .
من فکر می کنم شما می خواین یک سری اطلاعات رو درون یک فایل DLL ذخیره کنی درسته ؟
اگه منظورت این باشه که راههای بهتری هست تازه اگه می خوای توی این کار رو بکنی حتماً کدشون کن بعد ذخیره .

میشه توضیح بدین که دقیقاً می خوای چکار کنی اگه بتونم راحتتر راهنمایئت کنم . یا علی

alimanam
دوشنبه 26 مرداد 1388, 21:39 عصر
البته نوشتن در دی ال ال غیر ممکن هم نیست
روش زیر روشی هست که می توانید در آن یک رشته را در یک dll ویرایش کنید .
برای اینکار
1- در حین ساختن dll مقادیری که می خواهید دستکاری کنید را بصورت رشته ایجاد کنید و آنها را با طول مورد نظر مقدار دهی کنید و dll را کامپایل کنید
2- dll را با یک Hex Editor مانند Notepad++ باز کرده در فایل بدنبال مقداری که با آن رشته را مقدار دهی کردید بیابید
3- مکان دقیق شروع و پایان رشته را بر حسب تعداد کاراکتر ( بایت ) از اول فایل بیابید . ( مثلا شروع کاراکتر 14009 و پایان کاراکتر 14015 در نتیجه طول آن 6 تا و احتمالا رشته شما طول 3 دارد )
4- در هنگام کار آن dll را بصورت فایل باینری ( راندوم ) با طول 1 باز کنید و با استفاده از دستورات خواندن و نوشتن در همان خانه از فایل که رشته شما هست (این خانه را در مرحله 2 و 3 بدست بیاورید ) بنویسید و بخوانید . کاراکتر به کاراکتر بنویسید و دقت کنید تعداد کاراکتر ها زیاد تر از تعداد کاراکتر های که شما برای اولین بار در حین برنامه نویسی مقدار دهی کردید نشود .

این روش یک روش غیر منطقی ولی تا حد زیادی شدنی است .

سلام دوست من

اگه یکم به سوال دوستمون توجه می کردین متوجه میشدین که منظورشون انجام عملیات ( نوشتن و خواندن درون فایل ) با کد نویسیه نه ویرایش فایل در ویرایشگرهای متنی .

و در مورد اینکه من برم ببینم dll چیه فکر کنم تا اندازه ایی بودونم که در وقتی فایلی از این نوع Compile شد به راحتی نشه درونش هر Data نوشت اگه به فایل نمونه ایی که نوشتم توجه بکنی متوجه میشی که من از فایل Compile شده ایی استفاده نکردم و به صورت یک فایل معمولی با پسوند dll استفاده کردم نه از یک Dynamic-link library که کامپایل شده .

امیدوارم که توضیحات بنده رو به خود نگیرین . یا علی

#target
پنج شنبه 29 مرداد 1388, 15:34 عصر
خواندن و نوشتن در DLL

من این برنامه رو با همون روشی که گفنم درست کردم
اسن فایل شامل 3 برنامه می باشد
ADllToWrite
شامل یک تابع برای برگرداندن یک رشته
DllReadWrite
برای نوشتن رسته چهار حرفی در dll
DllExamine
برای نمایش رشته dll در یک پیام

نحوه استفاده

اول فایل DllReadWrite را باز کرده در جعبه یک متن چهار حرفی نوشته و Write را فشار دهید سپس DllExamine را باز کرده و بر روی دکمه کلیک کنید مشاهده می کنید که پیام شامل متنی است که شما در DllReadWrite وارد کرده بودید

سورس رو هم اضافه کردم .!