PDA

View Full Version : سوال: سورس برنامه ای با محیط گرافیکی در زبان "سی"



sali444
پنج شنبه 11 تیر 1388, 14:22 عصر
سلام دوستان
سورس یه برنامه به زبان "سی" رو می خوام که محیط گرافیکی داشته باشه.
اگه اسم کامپایلر رو هم بدید که دیگه عالیه
برای میط ویندوز باشه بهتره.
با کمی توضیحات در مورد اینکلودها
ممنون

tdkhakpur
پنج شنبه 11 تیر 1388, 20:33 عصر
سلام
یعنی چی خوب ویندوز خودش محیط گرافیکی هست دلیلی به گرافیکی بودن برنامه نداره .
اگر منظورتان را واضحتر بگویید بهتر متوجه خواسته شما میشویم.

ilius.gnu
جمعه 12 تیر 1388, 07:34 صبح
باید ببینید میخواید از کدوم کتابخانهٔ گرافیکی استفاده کرده باشه. مثلاً win32-api یا qt یا gtk
برنامه‌های اوپن‌سورس زیادی هستن که بر اساس gtk و qt نوشته شدن(برای گنو/لینوکس، ولی به ویندوز هم پوپرت شدن) و از کامپایلر گنو هم استفاده می‌کنن(gcc)
مثل StarDict و Pidgen و Thunderbird که همه آزاد و اوپن‌سورس هستن.
حتی خود فایرفاکس(که نسخهٔ ویندوزش نمی‌دونم از کدوم کتابخانه استفاده کرده).

احتمالاً شما یه برنامهٔ ساده میخواید که بشه ازش سر درآورد. ولی به هر حال باید library و کامپایلر خودتون رو مشخص کنید.

sali444
جمعه 12 تیر 1388, 12:00 عصر
سلام و ممنون!
من زیاد حرفه ای کار نکردم. ولی واسم جالب بود که ببینم ساختار چنین برنامه هایی چطوریه. برنامه ای که دوست دارم سورسش رو ببیننم می خوام با سی نوشته شده باشه نه سی پلاس پلاس.

از هر کتابخونه ای که باشه مهم نیست. فقط راحت بتونم درکش کنم.
راستی gcc رو دارم ( codeblocks ).
QT رو هم اگر همون برنامه مربوط به محیط برنامه نویسیش رو یه لینکی چیزی بدید ممنون میشم.

kitten
یک شنبه 14 تیر 1388, 20:23 عصر
سلام دوست عزیز با این که سوالتون خیلی گنگه من یه چند تا نمونه مختلف از انواع برنامه نویسی می زارم
اما توجه کن که تمام این ها مبحث های زیادی هست که باید وقت بزاری و شروع کنی به خوندن
(ضمنا منبع فارسی زیادی هم نداره بیشتر باید انگلیسی بخونی)
مثلا برای win32-api این کد یه صفحه خالی ایجاد می کنه تو ویزوال سی پلاسپلاس از نوع
win32 project

#include <windows.h>

LPCTSTR ClsName = "BasicApp";
LPCTSTR WndName = "A Simple Window";

LRESULT CALLBACK WndProcedure(HWND hWnd, UINT uMsg,
WPARAM wParam, LPARAM lParam);

INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MSG Msg;
HWND hWnd;
WNDCLASSEX WndClsEx;

// Create the application window
WndClsEx.cbSize = sizeof(WNDCLASSEX);
WndClsEx.style = CS_HREDRAW | CS_VREDRAW;
WndClsEx.lpfnWndProc = WndProcedure;
WndClsEx.cbClsExtra = 0;
WndClsEx.cbWndExtra = 0;
WndClsEx.hIcon = LoadIcon(NULL, IDI_APPLICATION);
WndClsEx.hCursor = LoadCursor(NULL, IDC_ARROW);
WndClsEx.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
WndClsEx.lpszMenuName = NULL;
WndClsEx.lpszClassName = ClsName;
WndClsEx.hInstance = hInstance;
WndClsEx.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

// Register the application
RegisterClassEx(&WndClsEx);

// Create the window object
hWnd = CreateWindow(ClsName,
WndName,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);

// Find out if the window was created
if( !hWnd ) // If the window was not created,
return 0; // stop the application

// Display the window to the user
ShowWindow(hWnd, SW_SHOWNORMAL);
UpdateWindow(hWnd);

// Decode and treat the messages
// as long as the application is running
while( GetMessage(&Msg, NULL, 0, 0) )
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}

return Msg.wParam;
}

LRESULT CALLBACK WndProcedure(HWND hWnd, UINT Msg,
WPARAM wParam, LPARAM lParam)
{
switch(Msg)
{
// If the user wants to close the application
case WM_DESTROY:
// then close it
PostQuitMessage(WM_QUIT);
break;
default:
// Process the left-over messages
return DefWindowProc(hWnd, Msg, wParam, lParam);
}
// If something was not done, let it go
return 0;
}

حامد مصافی
دوشنبه 15 تیر 1388, 09:59 صبح
در www.sf.net جستجو کنید؛ موارد زیادی خواهید یافت.

sali444
پنج شنبه 18 تیر 1388, 17:36 عصر
ممنون از همه.
ضمنن توي sf بودم قبلن ولي يه چيز ساده و رون ميخوام.
اگه چيزي بود كه با gcc كامپايل مي شد خيلي بهتر بود

kitten
شنبه 20 تیر 1388, 18:22 عصر
يه سري به سايت
www.planet-source-code.com (http://www.planet-source-code.com)
بزن