PDA

View Full Version : پیشنهاد شما برای دایرکتیو جدید در دلفی...



brians2000
پنج شنبه 16 تیر 1384, 09:18 صبح
سلام...

همونطور که می دونید دلفی در وی سی ال دات نت تا حدودی به سیستم عامل وابسته است : برای اینکه ساپورت اون در حالت 64 بیتی بوجود بیاد چه پیشنهادی دارید؟‌ من این رو به این صورت پیشنهاد دادم :

یک کامپایلر دایرکتیو به اینصورت ایجاد بشه :


{$OSbits 64}

{$OSbits 32}
حالا ما وقتی این رو آن می کنیم به این صورت تغییر می کنه همه چی :



function SetUserObjectInformationW; external;[b]osdepends{NEW} [/b];
[SuppressUnmanagedCodeSecurity, DllImport(user+osbits{replace from user32} , CharSet = CharSet.Ansi, SetLastError = True, EntryPoint = 'SetUserObjectSecurity')]خوب.... در صورتی که کامپایلر تارگت 64 بیتی داشته باشه که خود بخود کد تصحیح میشه... نکته اینکه توی دات نت مهم نیست سیستم عاملتون 64 بیتی یا 32 بیتی... فقط زمانی که توی وی سی ال دات نت کار می کنید بخاطر وابستگی به سیستم عامل مشکل پیش میاد! مثلا یوزر 32 یا جی دی آی 32 ... خوب... می دونید که مدل فراخوانی اونها از 32 بیتی به 64 بیتی در مقادیر پس شده به اونها تغییر کرده و در ضمن توی دات نت سیستم عامل به صورت اتوماتیک دات نت رو به 64 بیتی بر می گردونه در نتیجه فراخوانی های وی سی ال درست کار نخواهند کرد...

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

تارگت نهایی هم بصورت یه بخش از آی دی ای در بیاد... یعنی 32 بیتی 64 بیتی... اینجوری یکم پرفورمانس دست آدمه:


نکته مهم:‌ وینفورمز هیچ مشکلی نداره ولی وی سی ال که به سیستم عامل خیلی نزدیکه مشکل پیدا می کنه... و.. مهم هستش چون خیلی از یوتیلیتی ها روی وی سی ال پیاده شدند و تبدیل اونها خیلی سخته!


خوبی وی سی ال اینه که دات نت هم لایبرری غنی سیستم عامل دم دسته... و نمیشه ازش گذشت راستشو بخواهید!

نظر شما چیه؟