برگزیده های پرشین تولز

مخفی کردن سورس یک کلاس از دید استفاده کننده از آن

kasra515

کاربر تازه وارد
تاریخ عضویت
25 نوامبر 2005
نوشته‌ها
46
لایک‌ها
0
محل سکونت
IRAN !!!
سلام دوستان .
چند روز پیش از یکی از دوستان شنیدم که روشی هست که میشه سورس یک کلاس رو از دید کسی که از اون کلاس به عنوان یک کلاس آماده استفاده می کنه مخفی کرد .
تا جایی که من از حرف هاش برداشت کردم اول باید توی یه فایل با پسوند h کلاس رو نوشت و متد های اون رو فقط اظهار کرد(معرفی اولیه متد)تو یه فایل دیگه خود کلاس رو کامل می نویسیم و کامپایل می کنیم و آبجکت اون رو در اختیار کاربر کاربر قرار میدیم ؛
اگه میشه این روش رو کامل توضیح بدید !
ممنون !:blush:
 

saalek110

Registered User
تاریخ عضویت
10 آپریل 2007
نوشته‌ها
212
لایک‌ها
1
با سلام.
فکر کنم منظور شما ساختن دو فایل یکی لایبرری و یکی با پسوند h است.
با سرچ میشه روشش را به دست آورد.
ولی برای مخفی کردن میشه فایل کلاس را تبدیل به فایل obj کرد تا کاربر برنامه موقع کامپایل اون را هم مورد استفاده قرار دهد. (به نقل از یکی از دوستان در همین تالار)
 

kasra515

کاربر تازه وارد
تاریخ عضویت
25 نوامبر 2005
نوشته‌ها
46
لایک‌ها
0
محل سکونت
IRAN !!!
اگه میشه کامل توضیح بدید:f34r:
 

saalek110

Registered User
تاریخ عضویت
10 آپریل 2007
نوشته‌ها
212
لایک‌ها
1
می دانید که کامپایل کردن و لینک کردن دو مرحله ساخت برنامه اجرایی است.
اگر برنامه ما چند فایل سورس داشته باشد موقع کامپایل همه ابتدا به فایل obj تبدیل شده و سپس توسط برنامه LINK به برنامه اجرایی تبدیل می شوند.

حالا در مورد موضوع تاپیک
شما کلاس را داخل یک فایل مجزا بنویسید و کامپایل کنید که obj ساخته شود. و بعد به کاربر برنامه لیست توابع آن را می دهید و روش استفاده از آن توابع را.
نمی دانم امنیت این روش چقدر است . شاید روشی که شما گفتید خیلی بهتر باشد. شاید هم هر دو روش در اصل یکی باشد. من اطلاعات زیاد ندارم. ولی این روش نیاز به آموزش ندارد. چون همه فایلها موقع ساختن برنامه اجرایی قبلش تبدیل به obj می شوند.
 

m3hrz4d

Registered User
تاریخ عضویت
21 سپتامبر 2005
نوشته‌ها
620
لایک‌ها
1
محل سکونت
اصفهان
یک راهش کامپایل کردن کلاس به صورت یک DLL هست.شما کلاس رو به این صورت کامپایل میکنی و به همراه فایل lib. و فایل Header کلاس به استفاده کننده میدی و اون دیگه چیزی از Source نمیبینه. فقط کاری که باید بکنه اینه که فایل هدر رو Include بکنه و ازش استفاده کنه و در ضمن فایل lib. رو هم لینک کنه
توی ویژوال ++C با درست کردن یک Win32 Project از نوع DLL میتونی راحت این کار رو بکنی.
واسه استفاده کردن هم برای لینک کردن dll در قسمت Project Propeties در قسمت Link باید اسم فایل lib. رو بنویسی.این فایل باید یا در کناره Project باشه یا در قسمت lib ها. در ضمن وقتی یه برنامه با استفاده از این dll مینویسی این dll باید کنار فایل exe یا توی System32 باشه.
 

saalek110

Registered User
تاریخ عضویت
10 آپریل 2007
نوشته‌ها
212
لایک‌ها
1
جناب plus سوادشون خیلی خوبه و من همیشه از پستهای ایشان چیز یاد می گیرم.
حق با ایشان است . ساخت dll روش مناسبی است.

در این پست:
http://forum.persiantools.com/showpost.php?p=1570443&postcount=43
من ساخت dll را با ویژوال سی 6 آموزش دادم. که هم در ویژوال بیسیک 6 قابل استفاده بود هم در دلفی.
راستش داشتم یک برنامه دلفی می ساختم که یک قسمتش کند بود به این فکر افتادم اون قسمت را با وی سی 6 dll بسازم. البته در همان دلفی مشکلم حل شد و نیازم مرتفع شد. ولی خیلی جالب بود اینکه آدم در زبان دیگری کاری را انجام دهد و در زبان دیگر ازش استفاده کند.

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