ورود

View Full Version : external asm file در VC



zoncpp
سه شنبه 27 آذر 1386, 09:49 صبح
سلام!
در ویندوز 64بیتی کد اسمبلی به صورت inline کامپایل نمی شود و خطا می دهد.
یک راه نوشتن کد اسمبلی، استفاده از فایل asm در پروژه برنامه می باشد. به این صورت که به پروژه VC یک فایل asm. اضافه می کنیم که تمام کدهای اسمبلی تحت توابع مختلف در این فایل پیاده سازی می شود. و در سورس برنامه این توابع اسمبلی را فراخوانی می کنیم.
من در پروژه VC خودم این کار رو کردم، ولی با فراخوانی یکی از توابع اسمبلی در سورس برنامه، خطا می دهد و پروژه کامپایل نمی شود.( خطای don't resolve )
گویا فایل asm. در پروژه تنظیمات خاصی را نیاز دارد که من نمی دانم. می تونید کمکم کنید؟:ناراحت:

Inprise
سه شنبه 27 آذر 1386, 15:44 عصر
برای اسمبلی 64 بیت یک توصیه بهت میکنم و خلاص . روتینهای اسمبلی ات رو بصورت obj بساز و لینک کن .

ICEMAN
سه شنبه 27 آذر 1386, 19:20 عصر
تو خود برنامه هم می تونی بنویسی __asm

zoncpp
چهارشنبه 28 آذر 1386, 11:36 صبح
برای اسمبلی 64 بیت یک توصیه بهت میکنم و خلاص . روتینهای اسمبلی ات رو بصورت obj بساز و لینک کن .

مرسی، ولی میشه بیشتر توضیح بدید. من تا بحال اینکار رو نکردم. یعنی فایل obj به پروژه اضافه نکردم. البته فکر می کنم همان تنظیمات رو روی فایل asm انجام بدم درست بشه. چطور باید این کار رو بکنم؟( حالا تنظیمات مربوط به فایل obj یا asm )

ICEMAN
چهارشنبه 28 آذر 1386, 12:32 عصر
برای اسمبلی 64 بیت یک توصیه بهت میکنم و خلاص . روتینهای اسمبلی ات رو بصورت obj بساز و لینک کن .

من این کار و برای فایل های .cpp انجام دادم که بجای فایل .cpp فایل .obj رو به پروژه add کردم.
(Separating Interface from Implementation)

فکر کنم یه چیزی مثل prototype و .h باید براش داشته باشی تا بتونی از روتین ها و function های توی فایل استفاده کنی.

zoncpp
چهارشنبه 28 آذر 1386, 13:03 عصر
من این کار و برای فایل های .cpp انجام دادم که بجای فایل .cpp فایل .obj رو به پروژه add کردم.
(Separating Interface from Implementation)

فکر کنم یه چیزی مثل prototype و .h باید براش داشته باشی تا بتونی از روتین ها و function های توی فایل استفاده کنی.

شرمنده، میدونم که باید Search کنم و اطلاعاتم رو کامل کنم. ولی آیا امکانش هست که شما دقیق تر توضیح بدید تا من سریعتر به کاری که نیاز دارم برسم؟:خجالت:
این فایل asm. که من به برنامه می خوام Add کنم، خودم نوشتم و یک فایل اسمبلی که روتین های اسمبلی داره و من می خوام این روتین ها رو در برنامم فراخوانی کنم. declare مربوط به روتین ها رو هم در فایل cpp. ،که قرار هست این روتین ها رو فراخوانی کنه، قرار دادم.
حالا اون prototype که شما گفتید ؟؟؟ نمی دونم منظورتون چیه:افسرده:

ICEMAN
چهارشنبه 28 آذر 1386, 20:58 عصر
شرمنده، میدونم که باید Search کنم و اطلاعاتم رو کامل کنم. ولی آیا امکانش هست که شما دقیق تر توضیح بدید تا من سریعتر به کاری که نیاز دارم برسم؟:خجالت:
این فایل asm. که من به برنامه می خوام Add کنم، خودم نوشتم و یک فایل اسمبلی که روتین های اسمبلی داره و من می خوام این روتین ها رو در برنامم فراخوانی کنم. declare مربوط به روتین ها رو هم در فایل cpp. ،که قرار هست این روتین ها رو فراخوانی کنه، قرار دادم.
حالا اون prototype که شما گفتید ؟؟؟ نمی دونم منظورتون چیه:افسرده:

امید وارم بدردت بخوره و دفعه دیگه تیک سبز حل شد رو برای post ت ببینم :-)

zoncpp
سه شنبه 11 دی 1386, 13:45 عصر
ولی هنوز حل نشده،
مشکل من اینه که توابع تعریف شده در فایل asm. قابل شناسایی در فایل اصلی پروژه نیست.
تا وقتی که این تابع رو فراخوانی نکردم، پروژه بدون خطا کامپایل می شه ولی وقتی این تابع رو فراخوانی می کنم خطای un resolve می ده. گویا فایل asm. برای پروژه قابل شناسایی نیست و به همین دلیل تابعی از این فایل هم قابل دسترسی نمی باشد. چه کنم ؟؟؟

Inprise
سه شنبه 11 دی 1386, 15:03 عصر
لطفا مسائلت رو در یک بخش پیگیری کن . چون این بحث رو در بخش اسمبلی هم مطرح کردی بهتره همونجا ادامه پیدا کنه و برای جلوگیری از پراکنده شدنش اینو قفل میکنم . اگه دوست نداشتی پیغام بده اونو ببندم اینو باز کنم . فرقی نمیکنه ، ولی فقط یه جا .