آژانس هواپیمایی
pop up

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

شروع موضوع توسط kasra515 ‏17 دسامبر 2007 در انجمن خانواده C++ , C

  1. kasra515

    kasra515 کاربر تازه وارد

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

    saalek110 Registered User

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

    kasra515 کاربر تازه وارد

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

    saalek110 Registered User

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

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

    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 باشه.
     
  6. saalek110

    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 تابحال بیشتر نساختم. ولی فکر کنم کار ساده ای باشد.
     
  7. boxilink