این دستور glib-genmarshal است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
glib-genmarshal - ابزار تولید مارشالر کد C برای بسته شدن GLib
خلاصه
glib-genmarshal [گزینه...] [فایل...]
شرح
glib-genmarshal یک ابزار کوچک است که مارشالرهای کد C را برای پاسخگویی ایجاد می کند
توابع مکانیسم GClosure در زیرکتابخانه GObject GLib. مارشالر
توابع دارای یک امضای استاندارد هستند، آنها در بسته شدن فراخوانی، آرایه ای از ارسال می شوند
ساختارهای ارزشی که پارامترهای تابع پاسخ به تماس را نگه می دارند و یک ساختار ارزشی برای
مقدار برگشتی تماس برگشتی سپس مارشالر موظف است با C مربوطه تماس بگیرد
تابع کد بسته شدن با تمام پارامترهای روی پشته و جمع آوری آن
ارزش بازگشتی
glib-genmarshal فهرستی از مارشالرها را برای تولید به عنوان ورودی می گیرد. لیست مارشالر است
یا از ورودی استاندارد خوانده شود یا از فایل هایی که به عنوان آرگومان های اضافی روی
خط فرمان.
مارشالر فهرست قالب
لیست های مارشالر خط به خط پردازش می شوند، یک خط می تواند حاوی یک نظر در فرم باشد
of
یا مشخصات مارشالر فرم
RTYPE:PTYPE
RTYPE:PTYPE,PTYPE
RTYPE:PTYPE,PTYPE,PTYPE
(تا 16 PTYPEs ممکن است وجود داشته باشد).
La RTYPE قسمت نوع بازگشت تماس و مقدار را مشخص می کند PTYPEراست به روده بزرگ است
لیست پارامترهای برگشت تماس را مشخص کنید، به جز اولین و آخرین آرگومان که
همیشه اشاره گر هستند
پارامتر انواع
در حال حاضر انواع زیر پشتیبانی می شوند:
خالی
نشان دهنده عدم نوع بازگشت یا عدم وجود پارامترهای اضافی است. اگر خالی به عنوان پارامتر استفاده می شود
لیست، ممکن است هیچ پارامتر اضافی وجود نداشته باشد.
بولن
برای انواع بولی (gboolean)
CHAR
برای انواع char امضا شده (gchar)
UCHAR
برای انواع char بدون علامت (گوچار)
INT
برای انواع عدد صحیح امضا شده (gint)
UINT
برای انواع عدد صحیح بدون علامت (guint)
LONG
برای انواع اعداد صحیح بلند امضا شده (glong)
ULONG
برای انواع اعداد صحیح بلند بدون علامت (گولونگ)
INT64
برای انواع اعداد صحیح 64 بیتی امضا شده (gint64)
UINT64
برای انواع اعداد صحیح 64 بیتی بدون علامت (guint64)
ENUM
برای انواع شمارش (جنت)
شلاق ها
برای انواع شمارش پرچم (گینت)
شناور
برای انواع شناور تک دقیق (gfloat)
دو برابر
برای انواع شناور با دقت دوگانه (gdouble)
STRING
برای انواع رشته (gchar*)
جعبه دار
برای انواع جعبهدار (ناشناس اما شمارش مرجع) (GBboxed*)
PARAM
برای GParamSpec یا انواع مشتق شده (GParamSpec*)
اشاره گر
برای انواع نشانگر ناشناس (gpointer)
هدف - شی
برای انواع GObject یا مشتق شده (GObject*)
واریانت
برای انواع GVariant (GVariant*)
NONE
نام مستعار منسوخ شده برای خالی
بول
نام مستعار منسوخ شده برای بولن
OPTIONS
--سرتیتر
محتوای فایل هدر مارشالرها را ایجاد کنید.
--بدن
محتوای فایل کد C مارشالرها را ایجاد کنید.
--پیشوند=پیشوند
پیشوند مارشالر را مشخص کنید. پیشوند پیش فرض «g_cclosure_marshal» است.
-- skip-source
رد شدن از اظهارات مکان منبع در نظرات ایجاد شده.
--stdinc
از marshallers استاندارد کتابخانه GObject استفاده کنید و gmarshal.h را در آن قرار دهید
فایل های هدر تولید شده
--nostdinc
از مارشالرهای استاندارد کتابخانه GObject استفاده نکنید و gmarshal.h را نادیده بگیرید
شامل دستورالعمل در فایل های هدر تولید شده است.
--درونی؛ داخلی
با استفاده از G_GNUC_INTERNAL، توابع تولید شده را به عنوان داخلی علامت گذاری کنید.
--valist-marshallers
برای استفاده با g_signal_set_va_marshaller() Valist marshaller ایجاد کنید.
-v, - نسخه
اطلاعات نسخه چاپی
-warnings fatal fatal
اخطارها را کشنده کنید، یعنی بلافاصله پس از وقوع هشدار خارج شوید.
-h, --کمک
چاپ راهنمای مختصر و خروج.
-v, - نسخه
نسخه را چاپ کنید و خارج شوید.
مثال
برای تولید مارشالرها برای توابع پاسخ به تماس زیر:
void foo (gpointer data1,
gpointer data2)؛
نوار خالی (gpointer data1,
gint param1،
gpointer data2)؛
gfloat baz (gpointer data1,
gboolean param1،
گوچار پارام2،
gpointer data2)؛
فایل marshaller.list باید به شکل زیر باشد:
VOID: VOID
VOID:INT
شناور: بولین، اوچار
و شما glib-genmarshal را اینگونه صدا می کنید:
glib-genmarshal --header marshaller.list > marshaller.h
glib-genmarshal --body marshaller.list > marshaller.c
مارشالرهای تولید شده آرگومان ها را در نام تابع خود کدگذاری می کنند. برای این
لیست خاص، آنها هستند
g_cclosure_user_marshal_VOID__VOID()،
g_cclosure_user_marshal_VOID__INT()،
g_cclosure_user_marshal_FLOAT__BOOLEAN_UCHAR().
آنها می توانند مستقیماً برای GClosures استفاده شوند یا به عنوان GSignalCMarshaller منتقل شوند
c_marshaller; استدلال بر ایجاد سیگنال ها:
GClosure *cc_foo، *cc_bar، *cc_baz;
cc_foo = g_cclosure_new (NULL، foo، NULL);
g_closure_set_marshal (cc_foo، g_cclosure_user_marshal_VOID__VOID);
cc_bar = g_cclosure_new (NULL، نوار، NULL);
g_closure_set_marshal (cc_bar، g_cclosure_user_marshal_VOID__INT);
cc_baz = g_cclosure_new (NULL، baz، NULL);
g_closure_set_marshal (cc_baz، g_cclosure_user_marshal_FLOAT__BOOLEAN_UCHAR)؛
با استفاده از خدمات onworks.net از glib-genmarshal به صورت آنلاین استفاده کنید