PDA

View Full Version : Incremental link



zoncpp
سه شنبه 25 دی 1386, 10:18 صبح
سلام،
پروژه ای در دلفی نوشتم که لازم دارم به آدرس تابع با استفاده از نام اون دسترسی داشته باشم.
در حقیقت این پروژه در VC نوشته شده و مشکلی نداره، اما در پیاده سازی اون در دلفی مشکل دارم. در VC تغییر در تنظیمات پروژه انجام داده و آن این هست که تیک Incremental link رو برمی داریم. در این صورت نام یک تابع دقیقا آدرس اون در حافظه رو برمیگردونه، اما در دلفی نمی دونم این مورد رو چطور تنظیم کنم. کسی می تونه کمکم کنه؟

Inprise
سه شنبه 25 دی 1386, 10:28 صبح
همیشه میتونی با نام تابع محلش رو در حافظه بدست بیاری . من مسئله ات رو متوجه نشدم . بیشتر توضیح بده

zoncpp
سه شنبه 25 دی 1386, 11:02 صبح
من نیاز دارم که آدرس و سایز یک تابع رو هنگام اجرای exe بدونم. مثلا تابع MyFunc در آدرس 0x40a020 قرار گرفته.
در VC با کد:

DWORD dw = (DWORD) MyFunc
مقدار
dw = 0x40a020 بدست میاد. اما در دلفی این آدرس درست نیست.(مقدار 0x40a020 بدست نمیاد)
البته در VC هم قبل از تنظیم disable "incremental linking" آدرس درست نیست اما با disable کردن "incremental linking" این مشکل برطرف میشه.
حالا در دلفی باید چیکار کنم؟

Inprise
سه شنبه 25 دی 1386, 13:51 عصر
من منظورت رو از درست نیست نمیفهمم . نسبت به چی درست نیست ؟
آدرس یک تابع دقیقا یعنی آدرس تابع در حافظه ، که یعنی بعد از اجرا . قبل از اجرا که آدرس معنی نداره .

zoncpp
سه شنبه 25 دی 1386, 15:05 عصر
درست می گید، اشتباه در کد من بود.
چون در VC قبل از تنظیم disable incremental linking همین مشکل رو داشتم، فکر می کردم در دلفی هم چون جواب درست نمی گیرم، اشکال از تنظیمات پروژه است. ولی اشکال از کد خودم در دلفی بود.
بله، در دلفی، اسم تابع دقیقا آدرس اون تابع در حافظه رو می ده.

شرمنده از اشتباهم:خجالت:. ممنون