امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
سوال در مورد ( MFC AppWizard ( exe  
نویسنده پیام
Iron_Fist غایب
مدیر بازنشسته
*****

ارسال‌ها: 1,456
موضوع‌ها: 70
تاریخ عضویت: آبان ۱۳۸۴

تشکرها : 109
( 456 تشکر در 134 ارسال )
ارسال: #1
at  سوال در مورد ( MFC AppWizard ( exe  
با سلام به دوستان

من یه پروژه از نوع ( MFC AppWizard ( exe  درست کردم
بعدش اومدم و تو فرمم یه کلید گذاشتم و اسم تابع کلید رو
OnButton5 گذاشتم
کد:
void CTestDlg::OnButton5()
{
        
}
حالا می خواهم مثلآ یه تابع API مثل SendMessage رو توش
بکار بگیرم
و یا بطور کل چجوری تو پروژه های از نوع ( MFC AppWizard ( exe
می شه توابع API رو به کار گرفت

با تشکر




۲۱-مرداد-۱۳۸۵, ۱۷:۵۴:۱۸
ارسال‌ها
پاسخ
pswin آفلاین
كاربر دو ستاره
**

ارسال‌ها: 151
موضوع‌ها: 11
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 0
( 19 تشکر در 11 ارسال )
ارسال: #2
RE: سوال در مورد ( MFC AppWizard ( exe  
سلام
تویه پروژه های MFC لازم نیست تابع API رو معرفی کنی. تمامی توابع از قبل معرفی شدن . فقط باید هدر فایل اون تابع api رو معرفی کنی تا ثابت های تابع هم کار کنن ( یادت باشه که C به بزرگ بودن و کوچیک بودن حروف حساسه پس توابع API رو با دقت تایپ کن)
برای اینکه هدر فایل ها و شیوه کامل کار برای هر تابع API رو یاد بگیری میتونی بری به MSDN و یا کتاب windows 2000 api super bible مراجعه کنی

-----------------------

www.ps-ware.net
(آخرین ویرایش در این ارسال: ۲۱-مرداد-۱۳۸۵, ۲۱:۱۷:۱۷، توسط pswin.)
۲۱-مرداد-۱۳۸۵, ۲۱:۰۹:۰۴
وب سایت ارسال‌ها
پاسخ
Iron_Fist غایب
مدیر بازنشسته
*****

ارسال‌ها: 1,456
موضوع‌ها: 70
تاریخ عضویت: آبان ۱۳۸۴

تشکرها : 109
( 456 تشکر در 134 ارسال )
ارسال: #3
RE: سوال در مورد ( MFC AppWizard ( exe  
با سلام به شما دوست عزیز
و تشکر از اینکه منو راهنمایی کردید
ولی متاسفانه چند مشکل هنوز هست ...

نقل قول: فقط باید هدر فایل اون تابع api رو معرفی کنی تا ثابت های تابع هم کار کنن

من تو MSDN دیدم که تابع SendMessage از یکی از دو هدر Winuser.h یا
Winuser.h فراخونی می شه ولی هر کدامش رو امتحان کردم کار نداد !

در ضمن من وقتی تابع SendMessage  رو می آرم به من سه تا پارامتر ارایه
می ده در حالی که تابع SendMessage  چهار تا پارامتر داره !
به نظر شما مشکل این قسمتش چیه ؟
[تصویر:  SendMessage.jpg]

با تشکر
۲۱-مرداد-۱۳۸۵, ۲۳:۳۷:۱۵
ارسال‌ها
پاسخ
pswin آفلاین
كاربر دو ستاره
**

ارسال‌ها: 151
موضوع‌ها: 11
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 0
( 19 تشکر در 11 ارسال )
ارسال: #4
RE: سوال در مورد ( MFC AppWizard ( exe  
ویژوال سی بطور خودکار برخی از قسمتهای  توابع api رو کامل میکنه از جمله این قسمتها هندل هستش که به صورت خودکار hwnd خود فرم رو میذاره. استفاده از api داخل vc مثل استفاده اونها داخل vb نیستش بخاطر همین بهتره به یک کتاب مرجع که اسمشو گفتم نگاه کنی داخل اون مثال تمامی توابع هستش . اگه بخوای یکم صبر کن از کتابخونه کتاب رو بگیرم شیوه کامل کار تابع رو اسکن کنم برات بفرستم؟

یادم رفت بگم اگر قبل از دستور SendMessage دو تا : بذاری تمامی دستورا برات لیست میشن که می بینی بعضی از اونها دو تا یا بیشترن. اگر SendMessage دوم رو انتخاب کنی این تابع 4 تا پارامتر داره.

----------------------------------
www.ps-ware.net
(آخرین ویرایش در این ارسال: ۲۲-مرداد-۱۳۸۵, ۰۱:۰۰:۲۰، توسط pswin.)
۲۲-مرداد-۱۳۸۵, ۰۰:۵۲:۲۷
وب سایت ارسال‌ها
پاسخ
Iron_Fist غایب
مدیر بازنشسته
*****

ارسال‌ها: 1,456
موضوع‌ها: 70
تاریخ عضویت: آبان ۱۳۸۴

تشکرها : 109
( 456 تشکر در 134 ارسال )
ارسال: #5
RE: سوال در مورد ( MFC AppWizard ( exe  
با تشکر از شما دوست عزیز

نقل قول: اگه بخوای یکم صبر کن از کتابخونه کتاب رو بگیرم شیوه کامل کار تابع رو اسکن کنم برات بفرستم؟
خیلی ممنون نمی خواد به خاطر من خدتون رو تو زحمت بندازید
تا همین جاش هم که کمک کردین ممنونم
فکر کنم تو MSDN توضیحات کامل باشه !
نقل قول: یادم رفت بگم اگر قبل از دستور SendMessage دو تا : بذاری تمامی دستورا
برات لیست میشن که می بینی بعضی از اونها دو تا یا بیشترن. اگر
SendMessage دوم رو انتخاب کنی این تابع 4 تا پارامتر داره.
ممنون از راهنمایتون !

متشکر
۲۲-مرداد-۱۳۸۵, ۱۳:۴۱:۲۲
ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

ارسال‌ها: 1,150
موضوع‌ها: 18
تاریخ عضویت: آذر ۱۳۸۲

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #6
RE: سوال در مورد ( MFC AppWizard ( exe  
خسرو جان سلام

توابعی که توی هدر ها تعریف شدن باید بصورت Global صدا زده بشن چون زمانی که شما داری با MFC برنامه می نویسی توی کلاس های MFC داری برنامه می نویسی و برای توابعی مثل API که توی هدر ها بصورت Global تعریف شدن استفاده از Scope resolution Operator الزامیه . حالا این یعنی چی ؟ یعنی استفاده از یک :: قبل اسم تابع API .

()SendMessage::

موفق باشید

گويند بهشت و حور و کوثر باشد  ..  جوي می و شير و شهد و شکر باشد
پر کن قدح باده و بر دستم نه      ..   نقدي ز هزار نسيه خوشتر باشد  
۲۲-مرداد-۱۳۸۵, ۱۶:۰۷:۴۴
ارسال‌ها
پاسخ
Iron_Fist غایب
مدیر بازنشسته
*****

ارسال‌ها: 1,456
موضوع‌ها: 70
تاریخ عضویت: آبان ۱۳۸۴

تشکرها : 109
( 456 تشکر در 134 ارسال )
ارسال: #7
RE: سوال در مورد ( MFC AppWizard ( exe  
ممد جان سلام از اینکه منو راهنمایی کردید ممنونم
با صحبت هایی که کردید چند تا سوال برام پیش اومد
که اگه پاسخ بدید ممنون می شم

نقل قول: توابعی که توی هدر ها تعریف شدن باید بصورت Global صدا زده بشن
منظورت کدام توابع و کدام هدر ها هست ؟
یکم اگه توضیح بدی ممنون می شم 

یه سوال که برام پیش اومده اینکه که چرا وقتی مثلآ قبل از همین تابع
سند مسیج Scope resolution Operator  می زاریم بهمون 4 تا پارامتر می ده
ولی وقتی Scope resolution Operator نمی زاریم بمون سه تا پارامتر می ده

یه سوال دیگه هم که دارم اینه که تو وی سی ++ مثلآ هندلی که از تابع
FindWindow بدست می آد رو تو چه نوع متغیری باید بریزم که بعدش مثلآ
ازش تو تابع SendMessage استفاده کنم

با تشکر
(آخرین ویرایش در این ارسال: ۲۲-مرداد-۱۳۸۵, ۱۶:۳۵:۱۴، توسط Iron_Fist.)
۲۲-مرداد-۱۳۸۵, ۱۶:۲۵:۴۰
ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

ارسال‌ها: 1,150
موضوع‌ها: 18
تاریخ عضویت: آذر ۱۳۸۲

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #8
RE: سوال در مورد ( MFC AppWizard ( exe  
نقل قول: منظورت کدام توابع و کدام هدر ها هست ؟

خوب معلومه ! اونهایی که مربوط به MFC نمیشن مثل توابع تعریف شده در همون windows.h که طبیعتا میشن همون توابع API !
وقتی شما داری توی یک Class Member function ( تابع عضو کلاس ) یک تابع دیگه رو صدا میزنی کامپایلر چطور باید بفهمه اون تابع جزیی از توابع تعریف شده همون کلاسه یا جز توابعی هست که بطور Global در هدر ها یا فایل ها یا حتی DLL های دیگه موجوده ؟؟
واسه اینکه به کامپایلر بگی که تابعی که صدا میزنی یک تابع Global هست که خارج از کلاس های MFC تعریف شده باید از همون Scope resolution operator یا :: استفاده کنی ! توی ++C وجودیت و تعریف توابع با نام های یکسان مجازه و کلا یکی از امکانات مهم زبانه و یکی از مهمترین وظایف کامپایلر ++C انتخاب بهترین تابعی هست که با پارامتر هایی که صدا زده میشه بخونه . اونجا هست که شما یک تابع با چندین حالت پارامتر می بینی . به این امکان زبان میگن Function Overloading .

حالا به اینجا میرسیم که چرا با وجود :: و با نبودش این حالت دوگانگی پیش میاد ! خوب همون طور که گفتم زمانی که شما از :: استفاده می کنی کامپایلر دیگه کلا از توابعی که توی کلاس ها یا Namespace های MFC تعریف شده چشم پوشی می کنه و دنبال اون تابع با اسم مشابه توی محدوده Global می گرده ! جالبه بدونی 2 تا تابع با نام SendMessage داریم . یکیش توی توابع API و تعریف شده در هدر windows.h و یکیش توی خود کلاس های MFC که کلا وظیفه متفاوتی داره و توی MFC framework انجام عمل می کنه . این دوتا با هم کاملا متفاوت هستند و دیدی که با یک :: از هم متمایز میشن .

خسرو جان ، واقعا برای بروبچز ایرانی علاقمند متاسف هستم که کتاب های خوب و مفیدی برای یادگیری ++C ندارند . من قبلا هم بهت توصیه کرده بودم که بدون یادگیری کل زبان ++C یادگیری وی سی ++ محاله و شدیدا مشکل و غیر قابل فهمه . هر چقدر روی ++C کار کنی کمه !


نکته : آقا راستی یادم رفت جواب سوال آخری رو بدم . توی MSDN نوع بازگشتی و پارامتر های توابع رو کاملا توضیح داده . تمام اون نوع ها از طریق windows.h توی ++VC در دسترس هستند و مشکلی نباید در تعریف کردنش و استفاده ازشون وجود داشته باشه . اگر مشکلی پیدا کردی همین جا بگو ، اگر تونستم دریغ نمی کنم . Wink


گويند بهشت و حور و کوثر باشد  ..  جوي می و شير و شهد و شکر باشد
پر کن قدح باده و بر دستم نه      ..   نقدي ز هزار نسيه خوشتر باشد  
(آخرین ویرایش در این ارسال: ۲۳-مرداد-۱۳۸۵, ۰۰:۴۵:۰۳، توسط Mamad2003.)
۲۳-مرداد-۱۳۸۵, ۰۰:۳۸:۰۵
ارسال‌ها
پاسخ
Iron_Fist غایب
مدیر بازنشسته
*****

ارسال‌ها: 1,456
موضوع‌ها: 70
تاریخ عضویت: آبان ۱۳۸۴

تشکرها : 109
( 456 تشکر در 134 ارسال )
ارسال: #9
RE: سوال در مورد ( MFC AppWizard ( exe  
ممد جان از کمکات خیلی خیلی خیلی ... متشکرم
ولی ...
نقل قول: خسرو جان ، واقعا برای بروبچز ایرانی علاقمند متاسف هستم که کتاب های خوب و مفیدی برای یادگیری ++C ندارند . من قبلا هم بهت توصیه کرده بودم که بدون یادگیری کل زبان ++C یادگیری وی سی ++ محاله و شدیدا مشکل و غیر قابل فهمه . هر چقدر روی ++C کار کنی کمه !
ممد جان شما که اهل حال هستی خودت می دونی که وضع کتاب تو ایران
چطوره پس یکم کمتر ضد حال بزن چون من از کارم دارم پشیمون می شم
که اومدم وی سی ++ یاد بگیرم Rolleyes
من یه مقدار با این کلاس ها و اینها کار کردم
بلاخره آدم باید از یه جایی شروع کنه دیگه
چاره ای هم نیست کتاب ها بی کیفیت هستند Sad
شما راه بهتری سراغ دارید ؟



۲۴-مرداد-۱۳۸۵, ۱۷:۳۶:۳۶
ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

ارسال‌ها: 1,150
موضوع‌ها: 18
تاریخ عضویت: آذر ۱۳۸۲

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #10
RE: سوال در مورد ( MFC AppWizard ( exe  
بابا من کی گفتم برو تو خط ضد حال ؟! شما سعی کن زبانت رو خوب تقویت کنی و با اصطلاح های انگلیسی برنامه نویسی آشنا بشی ، اونوقت بهتر می تونی کتاب های زبان اصلی بخونی و خوب تفاوت کیفیت آموزش رو بهتر میتونی درک کنی .

گويند بهشت و حور و کوثر باشد  ..  جوي می و شير و شهد و شکر باشد
پر کن قدح باده و بر دستم نه      ..   نقدي ز هزار نسيه خوشتر باشد  
۲۴-مرداد-۱۳۸۵, ۲۲:۳۸:۲۶
ارسال‌ها
پاسخ
arian_vc آفلاین
در حال پیشرفت
***

ارسال‌ها: 328
موضوع‌ها: 40
تاریخ عضویت: مرداد ۱۳۸۵

تشکرها : 66
( 311 تشکر در 95 ارسال )
ارسال: #11
RE: سوال در مورد ( MFC AppWizard ( exe  
سلام دوست عزیز فکر می کنم اشکال کار شما اینجاست:
در منوی project روی گزینه settings کلیک کنید در یکی از برگه ها در قسمتی
این نوشته شده:
kernel32.lib, user32.lib,...
تابع مورد نظر شما در یکی از کتابخانه ها است(شما باید کتابخانه مورد نظرتان را از msdn پیدا کنید)
مثلا برای کار با socket (بدون MFC) باید هم فایل header را در اول برنامه Include کنید و هم فایل زیر را در قسمتی که بالا گفتم بنویسید:
ws2_32.lib
۲۵-مرداد-۱۳۸۵, ۱۹:۲۱:۲۷
وب سایت ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  سوال در مورد infix ها Super Robot 1 2,738 ۱۸-دى-۱۳۹۱, ۱۶:۲۷:۲۸
آخرین ارسال: Ghoghnus
  [سوال] 2 تا سوال در مورد c++ shabnam_khaleh 3 4,617 ۳۱-مرداد-۱۳۹۱, ۲۱:۰۵:۵۳
آخرین ارسال: masterhe3ar
  سوال در مورد linq zahra_m_alipoor 1 3,314 ۱۶-مرداد-۱۳۹۱, ۱۵:۵۶:۰۹
آخرین ارسال: moribermuda
  سوال در مورد ی علامت salehjg 1 2,485 ۰۵-شهریور-۱۳۹۰, ۱۹:۴۰:۳۲
آخرین ارسال: babyy
  یک سوال در مورد زمان بندی cin Fire_Falcon 3 4,231 ۲۹-اردیبهشت-۱۳۸۹, ۲۲:۱۸:۱۲
آخرین ارسال: dreamvbfox
  يه سوال در مورد پروژه کتابخانه Rink8 0 2,434 ۰۸-اردیبهشت-۱۳۸۷, ۲۳:۰۳:۵۷
آخرین ارسال: Rink8
  یه سوال در مورد اسمبلی vizvizbasic 12 13,117 ۰۷-اردیبهشت-۱۳۸۷, ۱۸:۳۵:۴۸
آخرین ارسال: lord_viper
  سوال در مورد c sh_teta 1 2,266 ۱۸-شهریور-۱۳۸۵, ۱۵:۰۹:۳۹
آخرین ارسال: pswin
at سوال در مورد آرایه Iron_Fist 21 14,936 ۲۷-مرداد-۱۳۸۵, ۱۷:۵۳:۱۴
آخرین ارسال: arian_vc

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 9 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS