تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 4 از 8 اولاول 12345678 آخرآخر
نمايش نتايج 31 به 40 از 77

نام تاپيک: برنامه نویسی در ویندوز

  1. #31
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Aug 2007
    پست ها
    486

    پيش فرض

    جلوی اون خط هم یه L گذاشتم درست شد:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    این L دقیقا چی کار می کنه؟

  2. #32
    پروفشنال hoax3r's Avatar
    تاريخ عضويت
    Oct 2007
    پست ها
    699

    پيش فرض

    خیلی ممنون که جواب دادین

    این کار رو کردم باز هم error داد:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    درست نفهمیدم چرا این کاری که شما گفتید رو باید انجام داد! من قبلا این اسم رو به عنوان ثابت تعریف می کردم و بعد به lpszClassName نسبت می دادم. تو تعریف ثابت اصلا از LPSTR استفاده نمی کردم! LPSTR مگه همون
    * char نیست؟
    ایکارو باید بعد اینکه اون تنظیماتی که در مورد Character Set گفتم انجام بدین. در غیر اینصورت L رو به رشته اضافه میکنید
    LPSTR و * char همونطور که گفتین یکی هستن. حالا چرا من به این شکل استفاده کردم بیشتر بر حسب عادت بوده دلیل خاصی نداره.

    جلوی اون خط هم یه L گذاشتم درست شد:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    این L دقیقا چی کار می کنه؟
    بله حق با شماست. در این حالت چون lpszClassName به صورت LPCSTR تعریف شده میشه مستقیم رشته رو وارد کرد

    L هم نشون میده رشته از نوع یونیکد هست.

  3. این کاربر از hoax3r بخاطر این مطلب مفید تشکر کرده است


  4. #33
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Aug 2007
    پست ها
    486

    پيش فرض

    منظورم این نبود که چرا به جای * char، از LPCSTR استفاده می کنید! من قبلا تو visual c++ 6 یه اسمی رو define می کردم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    بعد WinClassName رو به lpszClassName نسبت می دادم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    یعنی اینجا به LPCSTR تبدیل نمی کردم!

  5. #34
    پروفشنال hoax3r's Avatar
    تاريخ عضويت
    Oct 2007
    پست ها
    699

    پيش فرض

    منظورم این نبود که چرا به جای * char، از LPCSTR استفاده می کنید! من قبلا تو visual c++ 6 یه اسمی رو define می کردم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    بعد WinClassName رو به lpszClassName نسبت می دادم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    یعنی اینجا به LPCSTR تبدیل نمی کردم!
    درست منظورتون رو از جمله آخر که گفتین "یعنی اینجا به LPCSTR تبدیل نمی کردم!" رو متوجه نشدم. چی رو تبدیل میکردین؟
    مهم اینه که lpszClassName به صورت LPCSTR تعریف شده و شما میتونید رشته رو داخل کد به صورت مستقیم
    هم اختصاص بدین حالا فرقی نداره رشته قبلا به چه شکل تعریف شده باشه.

  6. این کاربر از hoax3r بخاطر این مطلب مفید تشکر کرده است


  7. #35
    اگه نباشه جاش خالی می مونه
    تاريخ عضويت
    Aug 2007
    پست ها
    486

    پيش فرض

    خیلی ممنون. یه چیزی رو قاطی کرده بودم الان فهمیدم.
    Last edited by amsjavan; 10-09-2008 at 11:46.

  8. #36
    اگه نباشه جاش خالی می مونه bahareh655's Avatar
    تاريخ عضويت
    Nov 2007
    محل سكونت
    بالای نَوَردِوون-نزدیک پُشت بون
    پست ها
    266

    پيش فرض

    سلام دوستان
    من تازه برنامه نویسی ویندوز با C++ رو شروع کردم!
    اولشم می خوام با نوشتن یه dll نوع win32 ساده و بعد نوشتن یه Application که تابع نوشته شده تو dll رو صدا می زنه،شروع کنم!
    یه نمونه کد هم پیدا کردم که یه dll ساده اس به اضافه کدهایی که اتصال پویای load-time و run-time رو پیاده سازی کردن و چند کاربرد دیگه!
    اون نمونه کدها رو هم تو یه فایل notpad اینجا آپ کردم:

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    من برای dll یه workspace تو محیط win32 cosole application ایجاد کردم و کدشو اونجا کپی کردم،می خواستم بدونم برای توابع load-time یا run-time باید یه workspace جدید ایجاد کنم یا تو همون workspace مربوط به dll باید باشن!

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

    سه تا سوال کوچیک هم داشتم،
    لطفاً توضیحی در مورد،LPTSTR ،Instance و Handle بدین؟!

    و نهایتاً اینکه آیا تو کتابخونه ی msdn در مورد syntax و دستورات زبان ویندوزی تو C++ توضیحی داده شده؟

    با کمال تشکر
    Last edited by bahareh655; 24-09-2008 at 00:25.

  9. #37
    پروفشنال hoax3r's Avatar
    تاريخ عضويت
    Oct 2007
    پست ها
    699

    پيش فرض

    برای ساخت dll در کامپایلر ++VC نسخه 2005 اول یه پروژه win32 Project یا win32 console application رو انتخاب میکنید تو صفحه ظاهر شده
    گزینه DLL رو بزنید که مشخص بشه پروزه از نوع dll هست.
    به عنوان مثال فایهای dll.cpp و dll.h رو ایجاد کنید به این صورت. بعدم کامپایل کنید تا dll درست بشه
     
    dll.h
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
     
    dll.cpp
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
     
    ما یه تابع ShowMsg ایجاد کردیم که یه پیام نشون بده، حالا برای استفاده میتوینم از توابع LoadLibrary و GetProcAddress استفاده کنیم
    یا به این صورت راحتتر به این صورت در میاد
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
     
    اون سه سوال هم تو MSDN توضیحای داده، ولی بصورت خلاصه اینجوری میشه گفت
    HANDLE : برای کار با اشیاء مثلها فایهال و پروسه ها و ... احتیاج به جور حق دسترسی یا حالا هر چی بشه اسمشو گزاشت هست که بهش هندل میگن
    LPTSTR : قسمت LP همون اشاره گر هست، T وقتی پروژه رو بخوان هم بصورت اسکی و یونیکد بدن از این استفاده میکنن
    و STR هم که معلومه رشتس که اگه T رو در نظر نگیریم  معادل این میشه 
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
     
    در مورد سوال آخر مثالهایی که MSDN داره بیشتر ترکیب C و win32 api هست.
    ولی اگه ترکیب api ها با کلاسهای ++C رو بخواین این سایت رو بد نیست ببینید.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
     
    در مورد csp هم اطلاعی ندارم
     
    شاد باشید

  10. این کاربر از hoax3r بخاطر این مطلب مفید تشکر کرده است


  11. #38
    اگه نباشه جاش خالی می مونه bahareh655's Avatar
    تاريخ عضويت
    Nov 2007
    محل سكونت
    بالای نَوَردِوون-نزدیک پُشت بون
    پست ها
    266

    پيش فرض

    سلام
    ضمن عرض تشکر بابت جواب کامل به سوالاتم

    به چند تا مشکل برخوردم که اگه بازم لطف کنید و پاسخ بدید،ازتون ممنون میشم!

    برای ساخت dll در کامپایلر ++VC نسخه 2005 اول یه پروژه win32 Project یا win32 console application رو انتخاب میکنید تو صفحه ظاهر شده گزینه DLL رو بزنید که مشخص بشه پروژه از نوع dll هست.

    راستش من از Visual C++ 6 استفاده می کنم!
    بعد از انتخاب win32 console application ،تو صفحه بعد گزینه ای مبنی بر انتخاب dll وجود نداره،شکل های زیر:





    به عنوان مثال فایهای dll.cpp و dll.h رو ایجاد کنید به این صورت. بعدم کامپایلکنید تا dll درست بشه

    اگه منظورتون این بوده که اول یه فایل با نام dll.cpp از نوع C++ Source File مثل شکل پایین ایجاد کنم و دوباره یه صفحه جدید از این نوع،این بار با اسم dll.h ایجاد کنم و کدهای مربوطه رو تو صفحات کپی کنم و بعد کدها رو Build کنم،این کارا رو کردم،ولی فایل dll ساخته نشد تا اونو تو دایرکتوری system ویندوز کپی کنم و بعد با یه کد دیگه اونو فراخونی کنم و فقط فایل .lib ایجاد شد!





    در ضمن موقع کامپایل کردن هم با این لینک ارورها مواجه شدم:
    کد:

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    میشه در مورد این دو تا خطا توضیح بدین که علت بوجود اومدنشون چیه؟





    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    وقتی که کد بالا رو هم تو یه صفحه دیگه کپی و اجرا می کنم،میگه: "dll.lib " رو نمی تونه باز کنه!
    من حتی واسه این کد یه workspace جدیدم ایجاد کردم و بعد از اجرا،دوباره می گفت نمی تونه "dll.lib " رو باز کنه!

    اگه ممکنه در مورد اینکه : اصلاً این کد چه توی یه صفحه جدید از همون workspace و چه توی یه workspace جدید ایجاد بشه، چه طوری(طی چه عملیاتی) می تونه فایل "dll.lib " رو پیدا کنه،توضیح بدین!




    در مورد HANDLE : برای کار با اشیاء مثلها فایهال و پروسه ها و ... احتیاج به جور حق دسترسییا حالا هر چی بشه اسمشو گزاشت هست که بهش هندل میگن
    LPTSTR : قسمت LP هموناشاره گر هست، T وقتی پروژه رو بخوان هم بصورت اسکی و یونیکد بدن از این استفادهمیکنن و STR هم که معلومه رشتس که اگه T رو در نظر نگیریم معادل این میشه
    توضیحاتتون در مورد این دو تا خیلی کامل بود،فقط می خواستم بدونم که instance یه شی ای از هر نوع داده می تونه باشه یا خودش یه DataType هستش؟





    در مورد سوال آخر مثالهایی که MSDN داره بیشتر ترکیب C و win32 api هست.

    ولی اگه ترکیب api ها با کلاسهای ++C رو بخواین این سایت رو بد نیست ببینید.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


    من کتاب "C++ in action " رو تو این سایت دیدم،یکی از فصلاش با عنوان "Windows techniques " بود،منظورتون این فصله؟

    یه نگاه کلی بهش انداختم،می خواستم بدونم Syntax ها رو کامل توضیح داده؟ شما این فصلو کامل خوندین؟





    در ضمن یه کتابخونه ی ویندوز هم نوشتن با عنوان "RSWL "،من دانلود و نصبش کردم،تو توضیحاتش اومده که: نمونه کدهای ویندوزی از جمله DLL رو داره.شما هم نمونه کدهاشو مطالعه فرمودین؟







    شاد باشید


    شما هم همینطور!
    بازم از اینکه وقت می ذارین و اینقدر کامل به سوالات پاسخ می دین،ازتون تشکر می کنم










    Last edited by bahareh655; 01-10-2008 at 18:34.

  12. #39
    اگه نباشه جاش خالی می مونه bahareh655's Avatar
    تاريخ عضويت
    Nov 2007
    محل سكونت
    بالای نَوَردِوون-نزدیک پُشت بون
    پست ها
    266

    پيش فرض

    سلام amsjavan !
    با توجه به پست های قبلی تون،شما ظاهراً برنامه نویسی ویندوزو از روی کتاب دارین دنبال می کنین!
    می خواستم لطف کنین اسم اون کتابو (در مورد برنامه نویسی ویندوز با C++ )یا اگه کتاب دیگه ای سراغ دارین،معرفی کنین که تمام دستورات رو از اول و کامل توضیح داده باشه و مطالبی در مورد درایور نویسی،dll نویسی و نوشتن wrapper داشته باشه!
    می دونم msdn مرجع کاملیه،ولی ترجیح می دم از روی کتاب کار کنم!
    ممنون

  13. #40
    اگه نباشه جاش خالی می مونه bahareh655's Avatar
    تاريخ عضويت
    Nov 2007
    محل سكونت
    بالای نَوَردِوون-نزدیک پُشت بون
    پست ها
    266

    پيش فرض

    سلام

    اررور بعددی به این دلیله که این کامپایلر بطور پیشفرض تمام رشته ها رو یونیکد فرض میکنه، که برای حلش دو تا کار میشه کرد
    1 - تو تنظیمات کامپایلر نوع رشته رو تغییر بدیم به اینصورت اول وارد منوی Project->Project Name Properties بشین(Project Name اسم پروژت هست)
    بعد قسمت Character Set رو به Use Multi-Byte Character Set تغییر بدی
    2- راه دوم اینه که شما تمام رشته ها داخل کد رو مشخص کنید یونیکد هست به اینصورت که اول هر رشته حرف L رو قرار بدین
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    ببخشید شما گفتید برای تغییر دادن کامپایلر در مورد UNICODE در نظر گرفتن رشته ها،راه اول اینه که بریم تو منوی Project و ...
    راستش تو منوی Project من هم چین چیزی وجود نداره،می خواستم ببینم برای تغییر تنظیمات کامپایلر باید کار دیگه ای بکنم یا جای دیگه ای برم؟!
    (من از VC++ 6 استفاده می کنم!)

    ممنون میشم اگه راهنماییم کنین.

    در ضمن برنامه msdn رو میشه از خود سایت مایکروسافت دانلود و نصب کرد؟!
    من ورژن 2001 اش رو دارم،ولی هم قدیمیه و هم بعضی جاهاش درست نصب نمی شه!

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •