شهروز مدیر انجمن
تاريخ عضويت: جمعه 16 مرداد 1383 تعداد ارسالها: 3279 محل سكونت: Germany
5 شنبه 6 مهر 1391 - 00:02 |
|
|
سلام.
یکی دو آموزش در اینترنت به زبان انگلیسی برای نوشتن کتابخانه برای گیم میکر وجود داره.
این هم یک منبع فارسی برای شمایی که دوست داری برای گیم میکر DLL بنویسید.
چون بیشتر این آموزش cpp هست بنابراین در این انجمن گذاشتمش.
ابتدا cpp را باز کنید. ( ورژنش مهم نیست)
سپس یک پروژه جدید از نوع WIN32 و با نام GM_DLL ایجاد کنید. File -> New -> Project
در پنجره Wizard گزینه Next و سپس DLL و Empty Project را انتخاب کنید و در نهایت Finish.
بسیار خب. قبل از هر کاری مطمئن بشید که برای All Configurations در تنظیمات General ، گزینه Character Set روی Not Set قرار داشته باشد. در غیر اینصورت با مشکل مواجه خواهید شد.
حالا یک فایل cpp در پوشه Source ایجاد کنید.
در این مثال هدف ما ساخت یک MessageBox با ورودی از گیم میکر هست.
در ابتدا هدر windows.h را لود کنید.
سپس خط زیر را اضافه کنید. در این خط ما تعیین می کنیم که توابع مورد نظر با با این فورمت که مورد قبول گیم میکر هست قابل فراخوانی باشند. (البته این مختص گیم میکر نیست)
كد: |
#define DLLEXPORT extern "C" __declspec (dllexport) |
حالا کافیه در ابتدای توابع مورد نظرمون تعریف DLLEXPORT رو قرار بدیم.
كد: |
DLLEXPORT double msg_show (char* a, char* b)
{
MessageBox(0,a,b,MB_OK);
return 0;
} |
توجه داشته باشید، ورودی و خروجی توابع در گیم میکر فقط می توانند real یا string باشند که در cpp میشه double و char* . البته روش های دیگه ای هم برای ارسال و دریافت رشته وجود داره که برای unicode میشه ازشون استفاده کرد.
به همین سادگی. کار تمومه.
حالا خروجی بگیرید و فایل GM_DLL.dll رو در پوشه فایل گیم میکرتون قرار بدید.
در گیم میکر یک Object بسازید و کدهای زیر رو درش قرار بدید :
كد: |
global.mmm = external_define('GM_DLL.dll','msg_show',dll_cdecl,ty_real,2,ty_string,ty_string);
external_call(global.mmm,"message","title"); |
در تابع external_call باید ورودی های تابع موجود در dll رو وارد کنید. درکش خیلی ساده هست.
امیدوارم که مفید بوده باشه.
شهروز |
_________________
استدیوی نرم افزاری بلوبالک
www.Bluebulk.info |
|