السلام عليكم ورحمة الله وبركاته, تحية طيبة للجميع ... ارغب بتعلم win32 api ولذلك قمت بشراء كتاب windows programming للكاتب petzold ولكن واجهتني مشكلة وهي انني استخدم visual studio 2005 بينما يشرح الكتاب visual studio 6 ... الرجاء مساعدتي لأقوم بعمل compile للبرامج في بيئة visual studio 2005. يعني كيف يمكنني كتابة برامج exe تنفذ على اي جهاز دون الحاجة الى وجود net framework ?????
[ تمت الإجابة ]كيفية عمل Compile لبرنامج
تجنب فيجوال ستوديو 2005 استعمل PELLES C او DEVC++ او CODEBLOCKS فهي اخف على حاسوبك و اسهل
العمل كثير و الوقت قليل أعاننا الله
VS2005 لا يدعم WIN32 للاسف لكن يمكنك ان تقوم بوضع TEMPLATE انظر الموضوع
http://www.codeproject.com/KB/macros/VCNetCustomWizard.aspx
للعلم المترجم يسمح باستعمال WIN32 الا ان VS لا يظهر ذلك
لذلك تراني انصحك بتجنبه سبب حجمه الكبير و استهلاكه للموارد
العمل كثير و الوقت قليل أعاننا الله
اقتباسVS2005 لا يدعم WIN32 للاسف
:blink: :blink: :blink:
mov eax, dword ptr ds:[0xffdf0308]
jmp dword ptr [eax+0xfc]
كون vs2005 لايدعم win32 api فهذا شيء مستحيل ... قصدي كل برامج ميكروسوفت حتى في windows 7 هي برامج win32 api ومكتوبة بواسطة visual studio وبالتالي فانا فعلا اشك في ان vs2005 لايدعم win32 api !!!!!!!!!!!!!!!!!!!!!! هذا بالاضافة الى ان اغلب tutorials التي وجدتها على النت تنصح بتنفيذ امثلتها باستخدام vs 2005 أو vs 2008 ... انا فعلا محتار في هذا الموضوع
من أجل تنفيذ الكود :
انشئ مشروع جديد فارغ.
أضف اليه ملف امتدادة c وليس cpp
نفذ برنامجك .
جرب المثال التالي:
- #include <windows.h>
- const char g_szClassName[] = "myWindowClass";
- #define IDC_MAIN_EDIT 101
- LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
- {
- switch(msg)
- {
- case WM_CREATE:
- {
- HFONT hfDefault;
- HWND hEdit;
- hEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "",
- WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL | ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHS
CROLL, - 0, 0, 100, 100, hwnd, (HMENU)IDC_MAIN_EDIT, GetModuleHandle(NULL), NULL);
- if(hEdit == NULL)
- MessageBox(hwnd, "Could not create edit box.", "Error", MB_OK | MB_ICONERROR);
- hfDefault = (HFONT)GetStockObject(DEFAULT_GUI_FONT);
- SendMessage(hEdit, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0));
- }
- break;
- case WM_SIZE:
- {
- HWND hEdit;
- RECT rcClient;
- GetClientRect(hwnd, &rcClient);
- hEdit = GetDlgItem(hwnd, IDC_MAIN_EDIT);
- SetWindowPos(hEdit, NULL, 0, 0, rcClient.right, rcClient.bottom, SWP_NOZORDER);
- }
- break;
- case WM_CLOSE:
- DestroyWindow(hwnd);
- break;
- case WM_DESTROY:
- PostQuitMessage(0);
- break;
- default:
- return DefWindowProc(hwnd, msg, wParam, lParam);
- }
- return 0;
- }
- int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
- LPSTR lpCmdLine, int nCmdShow)
- {
- WNDCLASSEX wc;
- HWND hwnd;
- MSG Msg;
- wc.cbSize = sizeof(WNDCLASSEX);
- wc.style = 0;
- wc.lpfnWndProc = WndProc;
- wc.cbClsExtra = 0;
- wc.cbWndExtra = 0;
- wc.hInstance = hInstance;
- wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
- wc.hCursor = LoadCursor(NULL, IDC_ARROW);
- wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
- wc.lpszMenuName = NULL;
- wc.lpszClassName = g_szClassName;
- wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
- if(!RegisterClassEx(&wc))
- {
- MessageBox(NULL, "Window Registration Failed!", "Error!",
- MB_ICONEXCLAMATION | MB_OK);
- return 0;
- }
- hwnd = CreateWindowEx(
- 0,
- g_szClassName,
- "theForger's Tutorial Application",
- WS_OVERLAPPEDWINDOW,
- CW_USEDEFAULT, CW_USEDEFAULT, 480, 320,
- NULL, NULL, hInstance, NULL);
- if(hwnd == NULL)
- {
- MessageBox(NULL, "Window Creation Failed!", "Error!",
- MB_ICONEXCLAMATION | MB_OK);
- return 0;
- }
- ShowWindow(hwnd, nCmdShow);
- UpdateWindow(hwnd);
- while(GetMessage(&Msg, NULL, 0, 0) > 0)
- {
- TranslateMessage(&Msg);
- DispatchMessage(&Msg);
- }
- return Msg.wParam;
- }
عندما اقوم بعمل build لأي برنامج باستخدام visual studio 2005 فإن كل شيء يعمل كما يجب ( قصدي ان exe الناتج يعمل عند تنفيذه على جهازي ولكن عند نسخه الى جهاز اخر فإنه لا يعمل) بينما عندما اقوم بعمل نفس الخطوات باستخدام visual studio 6 فأن exe الناتج يعمل على اي جهاز انسخه اليه .... شكرا
السلام عليكم ,,
اقتباسVS2005 لا يدعم WIN32 للاسف لكن يمكنك ان تقوم بوضع TEMPLATE انظر الموضوعhttp://www.codeproject.com/KB/macros/VCNetCustomWizard.aspx
للعلم المترجم يسمح باستعمال WIN32 الا ان VS لا يظهر ذلك
لذلك تراني انصحك بتجنبه سبب حجمه الكبير و استهلاكه للموارد
من قال هذا الكلام يا أخي :)
VS2005 كان موجهاً للـ NET. بشكل مباشر و يمكن اعداده لينتج تطبيقات windows أصلية,
العديد من الطلبات اقترحت إضافة ميزة الترجمة إلى Native Code و خصوصاً في ++VC ,, الميزة كانت موجودة أصلاً و لكنها تحتاج إلى تغيير إعدادات المترجم و المكتبات و بعض الإعدادت الأخرى ,,
عموماً الميزة موجودة بشكل افتراضي في 2008 ++VC و الذي أعتقد أنك من المفروض أن تستعمله بدلاً من نسخة 2005 :)
عموماً اختيارك لمترجم مايكروسوفت هو اختيار صائب بحسب رأيي,
و لكن mingw و codeblocks يستحقان التجربة بكل تأكيد,
بالنسبة لترجمة البرنامج و عدم عمله على فتأكد من أن البرنامج تترجمه على الوضعية release و ليس debug ,,
تحياتي ,,
لا تلوموني انا
لا تلوموني انا القيت نظرة خفيفة على VS2005 فلم اجد في IDE مشروع WIN32 لكني قلت ان COMPILER يسمح باخراج برنامج WIN32
انا انسان يستعمل CONSOLE و تعاملي مع MICROSOFT-NET يتم عن طريق #DEVELOP اما VS فلا اقدر ان اتمالك اعصابي حين اري 3GB تطير مع الحمام
العمل كثير و الوقت قليل أعاننا الله
حصل خير أخي :)
اقتباساما VS فلا اقدر ان اتمالك اعصابي حين اري 3GB تطير مع الحمام
:D :D :D
mov eax, dword ptr ds:[0xffdf0308]
jmp dword ptr [eax+0xfc]
حتى BROOK MILES صاحب THE FORGERS اشار لذلك
http://www.winprog.org/tutorial/msvc.html
اقتباسThis should far and away be your first choice for a Win32 development environment. It's free, it's complete, it is superbly documented by Microsoft and third party authors, and is widely supported by the Win32 community.
رحم الله ايام PELLES C و CODEBLOCKS :(
العمل كثير و الوقت قليل أعاننا الله
بالفعل وكما اشار الأخ Khaled.Alshaya فان المشكلة كانت في انني كنت اتعامل مع الملف الموجود في debug وليس في release .... اشكرك اخي Khaled.Alshaya على مساعدتي في حل هذه المشكله التي واجهتني حتى قبل ان ابدأ واشكر جميع الأخوة الذين ساعدوني واتمنى منكم دائما ان لا تبخلو علينا بمساعدتكم وشكرا للجميع ( fkugd2003 , GamingMasteR, فهدالشلوي)
اقتباسVS2005 لا يدعم WIN32 للاسف
فيها وجهة نظر إذا كنت بتقصد نسخة الـ Express
دولة الخلافة الاسلامية في المخاض الاخير وميلادها قريب
حزب التحرير : التزم الطريق الصحيح الشرعي الوحيد لاعادة دولة الخلافة الاسلامية .
الامة الاسلامية متعطشة لقيادة مخلصة لتذوق حلاوة النصر ولن يكون ذلك الا بعودة الخلافة الاسلامية
الامة الاسلامية تحتاج لاحداث تسحقها سحقا وتمعسها معسا لتفكر تفكيرا جماعيا بالتغير لان وحدة المشاعر لوحدها لاتكفي وهذة الاحداث كلها خير
لا أعلم بخصوص VS 2005 Express لكن نسخة 2008 منه تدعم win32
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
هذا الموضوع مغلق.


